C# winfom 中如何设置listview空间只有竖直方向的滚动条,不要横向的滚动条呢?如图,去掉横向的。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winfom 中如何设置listview空间只有竖直方向的滚动条,不要横向的滚动条呢?如图,去掉横向的。相关的知识,希望对你有一定的参考价值。

在Winform里的Listview只有scrollable的属性,可设为true或false. 如果,是true,横向(Horizon)与竖向(Vertical)同时出现。
怎么样Listview只启用竖向Veritcal滚动条Scrollbar呢。调用Win32 API的ShowScrollBar接口可实现此功能,具体步骤如下:
1. 引入System.Runtime.InteropServices
2. 申明ShowScrollBar方法
private const int SB_HORZ = 0;
private const int SB_VERT = 1;
private const int SB_CTL = 2;
private const int SB_BOTH = 3;
[DLLImport("user32")]
public static int ShowScrollBar(int hwnd,int wBar, int bShow);
3. 在Form的Load事件里加入如下调用
this.ListView1.Scrollable = false;
ShowScrollBar( (int)this.ListView1.Handle, SB_VERT, 1);

这就OK了。
举一反三,如果只启用水平滚动条,把参数设置为SB_HORZ就OK了。追问

第二步能具体点不?

追答private const int SB_HORZ = 0;
private const int SB_VERT = 1;
private const int SB_CTL = 2;
private const int SB_BOTH = 3;
[DLLImport("user32")]
public static int ShowScrollBar(int hwnd,int wBar, int bShow);

就这么写

参考技术A 上面的回答ShowScrollBar(int hwnd,int wBar, int bShow);确实可以 设置只显示水平或者垂直滚动条,但其实,如果只想 项横向排列,设置ListView Alignment 属性为 Left 就好了

c# 如何双击listview 的项可变成编辑状态?

ListView没办法这样干,你用DataGirdView,单击就行了,ListView不能编辑

哎,哥们,我也不知道你是不是知道用这个DataGirdView控件,但就要的是题中所说的需求,ListView是一定不行的,写了挺长时间,能不能用得上,希望你读一下。

用DataGirdView大致可以这样实现(我没用三层,只给你说明作用):

1,在你的窗体上拽个DataGirdView出来,起名:如dgvQuestionList
2,在窗体后台代码文件中声明两个全局对象(因为在你修改的时候,还要用这两个对象,所以声明为全局的)
DataSet set = new DataSet("MyQuestion"); //用来存放查询结果
SqlDataAdapter sda = null; //ADO.NET查询的另一个对象,不知道你用过没有,查询的时候再初始化

3,搞一个查询按键也来超名:如btnSearch,写这个查询按钮的点击事件,具体处理如下:
string sql = "select * from [yourtable] where [your condition]";
//初始化上边声明的SqlDataAdapter对象
this.sda = new SqlAdapter(sql, con); //con是你的数据库连接,到时候换成你的连接对象就行了
this.sda.Fill(set,"Question"); //用sda去查询数据库,并把结果保存在上边声明的数据集里
dgvQuestionList.DataSource = set.Tables["Question"]; //将查询结果显示到DataGridView上

以上是查询部分,下面说编辑
4,编辑的话,直接在DataGirdView控件上编辑就行了,关键是编辑完成后保存,你需要再来个按钮比如叫btnUpdate
处理这个更新按钮的点击事件,处理过程如下
SqlCommandBuilder builder = new SqlCommandBuilder(this.sda); //把查询时用的SqlDataAdapter对象传过来,SqlCommandBuilder对象将自动为DataAdapter对象生成增删改语句
this.sda.Update(set, "Question"); //记DataAdapter对象去执行更新

到此,解决,就是注意,数据库表里一定要有主键,否则不行了

不知道对你是否有帮助,有不明白的可以接着讨论。
参考技术A ListView没办法这样干,你用DataGirdView,单击就行了,ListView不能编辑 哎,哥们,我也不知道你是不是知道用这个DataGirdView控件,但就要的是题中所说的需求,ListView是一定不行的,写了挺长时间,能不能用得上,希望你读一下。 用DataGirdView大致可以这样实现(我没用三层,只给你说明作用): 1,在你的窗体上拽个DataGirdView出来,起名:如dgvQuestionList2,在窗体后台代码文件中声明两个全局对象(因为在你修改的时候,还要用这两个对象,所以声明为全局的) DataSet set = new DataSet("MyQuestion"); //用来存放查询结果 SqlDataAdapter sda = null; //ADO.NET查询的另一个对象,不知道你用过没有,查询的时候再初始化 3,搞一个查询按键也来超名:如btnSearch,写这个查询按钮的点击事件,具体处理如下: string sql = "select * from [yourtable] where [your condition]"; //初始化上边声明的SqlDataAdapter对象 this.sda = new SqlAdapter(sql, con); //con是你的数据库连接,到时候换成你的连接对象就行了 this.sda.Fill(set,"Question"); //用sda去查询数据库,并把结果保存在上边声明的数据集里 dgvQuestionList.DataSource = set.Tables["Question"]; //将查询结果显示到DataGridView上 以上是查询部分,下面说编辑4,编辑的话,直接在DataGirdView控件上编辑就行了,关键是编辑完成后保存,你需要再来个按钮比如叫btnUpdate处理这个更新按钮的点击事件,处理过程如下 SqlCommandBuilder builder = new SqlCommandBuilder(this.sda); //把查询时用的SqlDataAdapter对象传过来,SqlCommandBuilder对象将自动为DataAdapter对象生成增删改语句 this.sda.Update(set, "Question"); //记DataAdapter对象去执行更新 到此,解决,就是注意,数据库表里一定要有主键,否则不行了 不知道对你是否有帮助,有不明白的可以接着讨论。 参考技术B 将lebleedit属性修改成true,再在AfterLabelEdit事件中添加需要的代码。很简单

以上是关于C# winfom 中如何设置listview空间只有竖直方向的滚动条,不要横向的滚动条呢?如图,去掉横向的。的主要内容,如果未能解决你的问题,请参考以下文章

c# 如何双击listview 的项可变成编辑状态?

C# WPF Listview 如何设置某一行的颜色

如何在 C#中的listView 控件中显示图片?

如何在 C#中的listView 控件中显示图片?

c# listview 怎么添加图片

请问C#如何在listview中点击获取表头的值