Winfrom的listView添加行和列
- 格式:docx
- 大小:29.94 KB
- 文档页数:2
C# 中LISTVIEW用法//增加项或列(字段)ListView1.Clear;ListView1.Columns.Clear;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Add;ListView1.Columns.Items[0].Caption:='id';ListView1.Columns.Items[1].Caption:='type';ListView1.Columns.Items[2].Caption:='title';ListView1.Columns.Items[2].Width:=300;Listview1.ViewStyle:=vsreport;Listview1.GridLines:=true; //注:此处代码也可以直接在可视化编辑器中完成, 也可写成以下这样beginwith listview1 dobeginColumns.Add;Columns.Add;Columns.Add;ViewStyle:=vsreport;GridLines:=true;columns.items[0].caption:='进程名';columns.items[1].caption:='进程ID';columns.items[2].caption:='进程文件路径';Columns.Items[0].Width:=100;Columns.Items[1].Width:=100;Columns.Items[2].Width:=150;endend;//增加记录with listview1.items.add dobegincaption:='1212';subitems.add('hh1');subitems.add('hh2');end;//删除listview1.items.delete(0);//从数据库表里读取数据写入ListviewvarTitem:Tlistitem; //此处一定要预定义临时记录存储变量.beginListView1.Items.Clear;with adoquery1 dobeginclose;sql.Clear;sql.Add('select spmc,jg,sl from kcxs');Open;ListView1.Items.Clear;while not eof dobeginTitem:=ListView1.Items.add;Titem.Caption:=FieldByName('spmc').Value;Titem.SubItems.Add(FieldByName('sl').Value);Titem.SubItems.Add(FieldByName('jg').Value);next;end;//删除ListView1.DeleteSelected;//如何取得ListView中选中行的某一列的值procedure TForm1.Button2Click(Sender: TObject);beginShowMessage(ListView1.Selected.SubItems.Strings[1]); //返回选中行第三列中的值end;showMessage(listView1.Selected.Caption); //返回选中行第一列的值.第1列的值:-->>> ListView1.Selected.Caption第i列的值(i>1):-->>> ListView1.Selected.SubItems.Strings[i]ListView1.Items.Item[1].SubItems.GetText); //取得listview某行某列的值Edit2.Text := listview1.Items[i].SubItems.strings[0]; //读第i行第2列返回选中行所有子列值.是以回车符分开的,你还要从中剥离出来你要的子列的值。
设置字段名设置字段值设定单元格表示 Error图标设定当前单元格取得当前单元格内容取得当前单元格的列 Index取得当前单元格的行 Index向下一行向上一行取消 DataGridView1 为只读设置 DataGridView1 为只读设置 DataGridView1 的第2列整列单元格为只读并变色设置 DataGridView1 的第3行整行单元格为只读并变色设置 DataGridView1 的[0,0]单元格为只读并变色设置 DataGridView1 的第2列整列单元格为只读并变色设置 DataGridView1 的第3行整行单元格为只读并变色设置 DataGridView1 的[0,0]单元格为只读并变色设置用户不能手动给 DataGridView1 添加新行设置用户可以手动给 DataGridView1 添加新行禁止DataGridView1的行删除操作。
允许DataGridView1的行删除操作。
DataGridView1的第一列隐藏DataGridView1的第一行隐藏DataGridView1的第一列显示DataGridView1的第一行显示列头隐藏行头隐藏列头显示行头显示删除名为"Column1"的列删除第四列删除第三行禁止用户改变DataGridView1的所有列的列宽禁止用户改变DataGridView1的所有行的行高允许用户改变DataGridView1的所有列的列宽允许用户改变DataGridView1的所有行的行高禁止用户改变DataGridView1的第一列的列宽禁止用户改变DataGridView1的第一列的行宽第一列的最小列宽设定为 100第一行的最小行高设定为 50禁止用户改变列头的高度禁止用户改变行头的宽度设定包括Header和所有单元格的列宽自动调整设定包括Header和所有单元格的行高自动调整第一列自动调整设定列头的宽度可以自动调整设定行头的宽度可以自动调整让 DataGridView1 的所有列宽自动调整一下。
个人收集整理-ZQ
分类:标签:字号大中小订阅
折腾了打扮下午,才搞明白了地所以然,记得在大学地时候给外教做过一个项目中,用到了这个控件,但是那是在中,和地使用还是稍微有点差别,书上介绍地也不多,网上写地也乱七八糟.文档收集自网络,仅用于个人学习
下面就通过一个小示例解释一下:
加入想在中加入以下两条信息.
通过设计模式添加很简单,这里就不说了,我们通过代码来完成.
设置控件
(())用于说明一共有多少列.
.有地时候,如果不设置这个,那么即使你再设计模式下添加了列,运行地时候也不会显示,这里我们用命令控制他显示,当然,我们也可以再设计模式下地属性选择.文档收集自网络,仅用于个人学习
.允许用户修改值.
.
.
显示网格线
.
;文档收集自网络,仅用于个人学习
.
一共三行 ("");
("");
("");
("")这个是第一行第一列
("")第一行第二列
("")第一行第三列
("")这个是第二行第一列
("")第二行第二列
("")第二行第三列
()把第一行添加上
()把第二行添加上文档收集自网络,仅用于个人学习
1 / 1。
C#WinformListView使⽤以下内容均来⾃⽹上,个⼈收集整理,具体出处也难确认了,就没写出处了;⼀、基本使⽤:listView.View = View.Details;//设置视图listView.SmallImageList = imageList;//设置图标//添加列listView.Columns.Add("本地路径", 150, HorizontalAlignment.Left);listView.Columns.Add("远程路径", 150, HorizontalAlignment.Left);listView.Columns.Add("上传状态", 80, HorizontalAlignment.Left);listView.Columns.Add("耗时", 80, HorizontalAlignment.Left);//添加⾏var item = new ListViewItem();item.ImageIndex = 1;item.Text = name; //本地路径item.SubItems.Add(path); //远程路径item.SubItems.Add("ok"); //执⾏状态item.SubItems.Add("0.5"); //耗时统计listView.BeginUpdate();listView.Items.Add(item);listView.Items[listView.Items.Count - 1].EnsureVisible();//滚动到最后listView.EndUpdate();⼆、动态添加记录,ListView不闪烁:1.新建⼀个C# 类,命名为ListViewNF(NF=Never/No Flickering)2.复制如下代码class ListViewNF : System.Windows.Forms.ListView{public ListViewNF(){// Activate double bufferingthis.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);// Enable the OnNotifyMessage event so we get a chance to filter out// Windows messages before they get to the form's WndProcthis.SetStyle(ControlStyles.EnableNotifyMessage, true);}protected override void OnNotifyMessage(Message m){//Filter out the WM_ERASEBKGND messageif (m.Msg != 0x14){base.OnNotifyMessage(m);}}}3.修改你的WinForm对应的xxxx.Design.cs,将系统默认⽣成的System.Windows.Forms.ListView改为ListViewNF即可。
winform listview用法WinForms中的ListView是一个用于显示项的控件,通常用于显示数据列表或者文件列表等。
1. 准备工作:在WinForms的设计器中添加一个ListView控件。
2. 添加列:在设计时,可以点击ListView的列标题区域,弹出编辑列窗口。
也可以在代码中通过调用ListView的Columns属性的Add方法来添加列。
```csharp// 添加两列listView.Columns.Add("列1");listView.Columns.Add("列2");```3. 添加项:可以通过调用ListView的Items属性的Add方法来添加项。
每个项可以包含多个子项,每个子项对应一个列。
```csharp// 添加一项,并设置两个子项的文本var item = new ListViewItem(new [] {"子项1", "子项2"}); listView.Items.Add(item);// 或者通过直接设置子项的文本来添加项var item = listView.Items.Add("子项1");item.SubItems.Add("子项2");```4. 显示图标:可以为每个项设置一个小图标。
```csharp// 准备一个图片列表var imageList = new ImageList();imageList.Images.Add("键1", Image.FromFile("图标1.jpg")); imageList.Images.Add("键2", Image.FromFile("图标2.jpg"));// 设置ListView的ImageList属性listView.SmallImageList = imageList;// 为项设置图标item.ImageKey = "键1";```5. 代码示例:```csharp// 在Form的构造函数或Load事件中编写以下代码// 添加列listView.Columns.Add("列1");listView.Columns.Add("列2");// 添加项,并显示图标var item1 = listView.Items.Add("子项1");item1.SubItems.Add("子项2");item1.ImageKey = "键1";var item2 = listView.Items.Add("子项3");item2.SubItems.Add("子项4");item2.ImageKey = "键2";```通过以上步骤,就可以在WinForms中使用ListView来显示数据列表。
C#winform中ListView⽤法this.listView1.GridLines = true; //显⽰表格线this.listView1.View = View.Details;//显⽰表格细节belEdit = true; //是否可编辑,ListView只可编辑第⼀列。
this.listView1.Scrollable = true;//有滚动条this.listView1.HeaderStyle = ColumnHeaderStyle.Clickable;//对表头进⾏设置this.listView1.FullRowSelect = true;//是否可以选择⾏//this.listView1.HotTracking = true;// 当选择此属性时则HoverSelection⾃动为true和Activation属性为oneClick //this.listView1.HoverSelection = true;//this.listView1.Activation = ItemActivation.Standard; ////添加表头this.listView1.Columns.Add("", 0);this.listView1.Columns.Add("列1",80);this.listView1.Columns.Add("列2", 160);//添加各项ListViewItem[] p = new ListViewItem[2];p[0] = new ListViewItem(new string[] { "","aaaa","bbbb"});p[1] = new ListViewItem(new string[] { "","cccc", "ggggg" });//p[0].SubItems[0].BackColor = Color.Red; //⽤于设置某⾏的背景颜⾊this.listView1.Items.AddRange(p);//也可以⽤this.listView1.Items.Add();不过需要在使⽤的前后添加Begin... 和End...防⽌界⾯⾃动刷新// 添加分组this.listView1.Groups.Add(new ListViewGroup("tou"));this.listView1.Groups.Add(new ListViewGroup("wei"));this.listView1.Items[0].Group = this.listView1.Groups[0];this.listView1.Items[1].Group = this.listView1.Groups[1];。
winform中datagrid和datagridview设置列标题的实现原来Blog上⾯的,抛弃有点可惜,贴过来[datagrid]using System;using System.Collections.Generic;using System.Text;using System.Drawing;using System.Windows;using System.Windows.Forms;using System.Data;namespace DgHeader{public class FormNoVS:Form{private DataGrid dg1;public FormNoVS(){this.Size = new Size(800, 600);DataTable table = new DataTable();table.Columns.Add("name");table.Columns.Add("age");DataRow row = table.NewRow();row["name"] = "Test";row["age"] = 13;table.Rows.Add(row);dg1 = new DataGrid();this.Controls.Add(dg1);dg1.Location = new Point(100,50);dg1.Size = new Size(400, 200); = "dg1";dg1.ColumnHeadersVisible = true;dg1.DataSource = table;DataGridTableStyle style = new DataGridTableStyle();DataGridTextBoxColumn headerName = new DataGridTextBoxColumn();headerName.HeaderText = "姓名";headerName.MappingName = "name";headerName.Width = 100;style.GridColumnStyles.AddRange(new DataGridColumnStyle[] { headerName });dg1.TableStyles.AddRange(new DataGridTableStyle[] { style });}}}[datagridview]using System;using System.Collections.Generic;using System.Text;using System.Drawing;using System.Windows;using System.Windows.Forms;using System.Data;namespace DgHeader{public class FormNoVS:Form{private DataGridView dgv1;public FormNoVS(){this.Size = new Size(800, 600);DataTable table = new DataTable();table.Columns.Add("name");table.Columns.Add("age");DataRow row = table.NewRow();row["name"] = "Test";row["age"] = 13;table.Rows.Add(row);dgv1 = new DataGridView();dgv1.Location = new Point(10,10);dgv1.Size = new Size(400, 200);this.Controls.Add(dgv1);dgv1.DataSource = table;dgv1.AutoGenerateColumns =true;dgv1.Columns[0].HeaderText = "姓名";}}}。
winformlistview用法
WinFormListView是一种用于在WinForm应用程序中呈现多列数据的控件。
它支持添加行和列,可以自定义列头和行样式,还可以方便地排序和筛选数据。
在使用WinForm ListView时,首先需要创建一个ListView控件并设置其属性。
然后,可以使用ListViewItem类来添加行和列。
例如,可以使用ListViewItem的构造函数来创建一个新的项,并设置其文本和图像。
然后,可以使用ListView的Items属性将此项添加到ListView中。
还可以使用ColumnHeader类来定义列头。
例如,可以使用ColumnHeader的构造函数来创建一个新的列头,并设置其文本和宽度。
然后,可以使用ListView的Columns属性将此列头添加到ListView中。
如果需要自定义行样式,则可以使用ListView的DrawItem事件。
在此事件中,可以使用Graphics对象绘制自定义行样式。
最后,如果需要对数据进行排序或筛选,则可以使用ListView 的Sorting和View属性。
Sorting属性可以设置列排序的方式,View 属性可以设置如何显示数据,例如图标、列表或详细信息。
综上所述,WinForm ListView是一个非常强大和灵活的控件,可以用于呈现大量数据并提供交互性。
- 1 -。
winformlistview用法WinformListView是Windows Form控件之一,它提供了一个多列列表视图,可以方便地在其中添加,删除,编辑和排序行。
ListView控件可用于在Windows表单应用程序中显示大量数据,并且与其他控件集成良好。
使用WinformListView进行列表操作非常简单,主要流程包括:创建WinformListView控件,定义表头,添加数据和定义事件响应函数四个步骤。
在Visual Studio的窗体设计器中可以轻松创建WinformListView控件。
打开设计器并在工具箱中选择ListView。
将控件拖放到Windows表单中。
WinformListView会自动命名,并出现在组件领域之后。
二、定义表头WinformListView控件的列由列头集合管理。
列头集合是ListView.ColumnHeaders属性。
列头的的文本及其任何样式由列标题的属性进行控制。
可以从设计器或代码中直接编辑列标题的属性。
使用设计器添加列标题:1.在设计器中选择WinformListView控件。
2.在属性窗口中,展开ColumnHeader属性。
3.在这里,您可以添加列标题,例如“名称”,“价格”等。
lstView.Columns.Add("名称",150);lstView.Columns.Add("价格",150);三、添加数据数据添加是WinformListView的另一个关键方面。
数据是通过行的集合管理。
行集合由Items属性控制。
新行添加到行集合中,通常使用Add方法。
随后,可以使用各种属性和方法从一个行对象中获取和设置数据。
可通过设计器中的属性窗口的Item属性添加行。
双击Item来创建新行。
2.在代码中添加行:使用SubItems属性向每行添加子项,方法如下:ListViewItem lvi = new ListViewItem("新行");lvi.SubItems.Add("100");lvi.SubItems.Add("10");lvi.SubItems.Add("1000");四、定义事件响应函数一般地,WinformListView控件的事件响应函数用于处理行选中、删除、编辑等行为的操作。
c#WinForm开发DataGridView控件的各种操作总结(单元格操作,属性设置)⼀、单元格内容的操作*****// 取得当前单元格内容Console.WriteLine(DataGridView1.CurrentCell.Value);// 取得当前单元格的列 IndexConsole.WriteLine(DataGridView1.CurrentCell.ColumnIndex);// 取得当前单元格的⾏ IndexConsole.WriteLine(DataGridView1.CurrentCell.RowIndex);*******另外,使⽤ DataGridView.CurrentCellAddress 属性(⽽不是直接访问单元格)来确定单元格所在的⾏:DataGridView.CurrentCellAddress.Y 和列: DataGridView.CurrentCellAddress.X 。
这对于避免取消共享⾏的共享⾮常有⽤。
当前的单元格可以通过设定 DataGridView 对象的 CurrentCell 来改变。
可以通过 CurrentCell 来设定DataGridView 的激活单元格。
将 CurrentCell 设为 Nothing(null) 可以取消激活的单元格。
// 设定 (0, 0) 为当前单元格DataGridView1.CurrentCell = DataGridView1[0, 0];在整⾏选中模式开启时,你也可以通过 CurrentCell 来设定选定⾏。
/// <summary>/// 向下遍历/// </summary>/// <param ></param>/// <param ></param>private void button4_Click(object sender, EventArgs e)...{int row = this.dataGridView1.CurrentRow.Index + 1;if (row > this.dataGridView1.RowCount - 1)row = 0;this.dataGridView1.CurrentCell = this.dataGridView1[0, row];}/// <summary>/// 向上遍历/// </summary>/// <param ></param>/// <param ></param>private void button5_Click(object sender, EventArgs e)...{int row = this.dataGridView1.CurrentRow.Index - 1;if (row < 0)row = this.dataGridView1.RowCount - 1;this.dataGridView1.CurrentCell = this.dataGridView1[0, row];}* 注意: this.dataGridView 的索引器的参数是: columnIndex, rowIndex 或是 columnName, rowIndex这与习惯不同。
C#-WinForm-ListView-表格式展⽰数据、如何将数据库中的数据展⽰到List。
在展⽰数据库中不知道数量的数据时怎么展⽰最好呢?——表格ListView - 表格形式展⽰数据ListView 常⽤属性 HeaderStyle - “详细信息”视图中列标头的样式。
None - 不显⽰列标头 Nonclickable - 不可点击 Clickable - 可点击 HideSelection - 当控件没有焦点时,移除选定项的突出显⽰。
MultiSelect - 允许选择多项(True/False)。
CheckBoxes - 指⽰复选框是否显⽰在项旁边。
FullRowSelect - 指⽰当项被选中时,其所有⼦项是否同该项⼀起突出显⽰。
GridLines - 在项和⼦项周围显⽰⽹格线。
仅在“详细信息”视图中显⽰。
View - 选择可以显⽰项的不同视图中的⼀种。
==========================================================⼀、设置表的列头 - Columns集合,添加5个列,设置text,按需要设置TextAlign和Width属性(第⼀列TextAlign属性只能是Left,不能居中。
如何让第⼀列居中?数据从第⼆列开始展⽰,让第⼀列宽度为0)⼆、设置View属性为 Details(细节),此时即可以显⽰列名三、展⽰数据 - ListView属性中Items集合属性点击<添加>按钮,添加的是⼀整⾏,其中text值为第⼀列的值。
如何添加⾏中其他数据?打开Items时有⼀个SubItems集合属性,添加列并设置text值======================================================如何将数据库中的数据展⽰在ListView中?//<刷新>按钮private void button1_Click(object sender, EventArgs e){List<Users> lu = new List<Users>();lu = ud.Select();//从数据库中查询数据//★★★遍历泛型集合前先清除ListView.Items中的数据,以免每次点击刷新时,都会将数据库中数据放⼊泛型集合中,使泛型集合重复添加元素,越来越⼤listView1.Items.Clear();//★★★foreach (Users u in lu)//遍历查询出来的数据{ListViewItem lv = new ListViewItem();lv.Text = ername;//设置第⼀⾏显⽰的数据//绑定剩余列的数据lv.SubItems.Add(u.Password);lv.SubItems.Add(u.Nickname);lv.SubItems.Add(u.Sex?"男":"⼥");lv.SubItems.Add(u.Birthday.ToLongDateString());lv.SubItems.Add(u.Nation);lv.SubItems.Add(u.Class);//⼀定记得⾏数据创建完毕后添加到列表中listView1.Items.Add(lv);}}刷新按钮=======================================================如何对选中的项进⾏展⽰?在上图中,既有选中的⾏,⼜有选中的复选框,点击<获取选项>如何把选中的项的⽤户名和性别展⽰出来呢?⼀、对于选中的⾏ -private void button5_Click(object sender, EventArgs e){foreach (ListViewItem lv in listView1.SelectedItems ){MessageBox.Show(lv.Text+"\t"+lv.SubItems[3].Text);}}展⽰选中的⾏的信息⼆、对于选中的复选框//<获取选中>按钮private void button5_Click(object sender, EventArgs e){foreach (ListViewItem lv in listView1.CheckedItems){MessageBox.Show(lv.Text + "\t" + lv.SubItems[3].Text);}}展⽰选中的复选框的信息=============================================================。
C#中GridView动态添加列的实现⽅法本⽂实例讲述了C#中GridView动态添加列的实现⽅法。
分享给⼤家供⼤家参考。
具体如下:protected void Page_Load(object sender, EventArgs e){TemplateField mycustomField = new TemplateField();//创建列实例mycustomField.ShowHeader = true;// 设置属性LinkButton lb = new LinkButton();lb.Text = "Delete";mycustomField.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "删除");mycustomField.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "", lb);TabelContentListGridView.Columns.Add(mycustomField);//添加列到TabelContentListGridView控件// 这种绑定翻页会丢失数据// 下⾯的绑定数据可以保持不过也要清零列不然后出现很多重复列// TabelContentListGV.Columns.Clear(); //清零列// System.Web.UI.WebControls.BoundField customField = new BoundField();// customField.DataField = dt.Columns[i].ColumnName;// customField.HeaderText = dt.Columns[i].ColumnName;// customField.ItemStyle.CssClass = dt.Columns[i].ColumnName;// TabelContentListGridView.Columns.Add(customField);}希望本⽂所述对⼤家的C#程序设计有所帮助。
wpf listview 用法WPFLISTVIEW是一种用于显示数据项列表的控件。
下面是它的一些常见用法:- 添加一行数据:- 定义一个结构体:```csharpstruct mhAction{private string num;private string action;private string axis;private string pos;private string value;public mhAction(string v1, string v2, string v3, string v4, string v5) {this.num = v1;this.action = v2;this.axis = v3;this.pos = v4;this.value = v5;}}```- 添加一条数据到ListView:```csharplvActionEditList.Items.Add(new mhAction("0", "MOV", "8,9,10,11", "500,450,500,500", "0"));```- 绑定数据:```xaml<ListView x:Name="lvActionEditList" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Grid.RowSpan="4" Margin="10"><ListView.View><GridView><GridViewColumn Header="序号" Width="40" DisplayMemberBinding="{Binding num}"/><GridViewColumn Header="动作" Width="100" DisplayMemberBinding="{Binding action}"/><GridViewColumn Header="轴" Width="100" DisplayMemberBinding="{Binding axis}"/><GridViewColumn Header="坐标" Width="200" DisplayMemberBinding="{Binding pos}"/><GridViewColumn Header="参数" Width="100" DisplayMemberBinding="{Binding value}"/></GridView></ListView.View></ListView>```- 居中显示数据:```xaml<Window.Resources><Style x:Key="ListViewItemStyle" TargetType="{x:Type ListViewItem}">。
WinForm中DataGridView添加,删除,修改操作具体⽅法1.添加操作,代码如下:复制代码代码如下:IList<SelfRun> selfRunConfigs = new List<SelfRun>();private void btnNewConfig_Click(object sender, EventArgs e){try{string _lampNo = UpDownSelfLampNo.Value.ToString();int _ctrlGpNo = Convert.ToInt16(UpDownCtrlGpCnt.Value);string _opWay = string.Format("{0}", rbConfig.Checked == true ? 1 : 0);string _opCtuch = GetSelectedCtuCh();if (CheckNewConfigIsLega(_ctrlGpNo, _opCtuch)){string _opType = rbCgOpen.Checked == true ? "01" : rbCgClose.Checked == true ? "00" : "02";selfRunConfigs.Add(new SelfRun(_opCtuch, _opType, Convert.ToInt32(UpDownTime.Value)));}BindGridViewForIList<SelfRun>(gcConfigShow, selfRunConfigs);}catch (Exception ex){MessageBox.Show(string.Format("新增配置失败,原因:{0}", ex.Message.Trim()));}}private void BindGridViewForIList<T>(DataGridView gv, IList<T> datasource){BindingList<T> _bindinglist = new BindingList<T>(datasource);BindingSource _source = new BindingSource(_bindinglist, null);gv.DataSource = _source;}SelfRun实体类代码如下:复制代码代码如下:public struct SelfRun{public SelfRun(string _opCtuCh, string _opWay, int _opTime): this(){OpCtuCh = _opCtuCh;OpWay = _opWay;OpTime = _opTime;}public string OpCtuCh{get;set;}public string OpWay { get; set; }public int OpTime { get; set; }}界⾯绑定,如图:效果如图:2.修改操作,代码如下:其实思路很简单,就是点击⾏的时候,获取⾏内数据信息,然后填充到控件内,修改后,点击‘修改配置'后即可保存修改。
winform datagridview控件用法Winform DataGridView 控件用法详解一、简介Winform DataGridView 控件是 .NET Framework 中提供的一个强大的数据显示和编辑控件。
它可以显示和编辑多种类型的数据(如文本、数字、日期、图像等),并且提供了丰富的功能和灵活的样式设置,可以方便地实现数据的展示、排序、筛选、编辑、分页等操作。
二、绑定数据源1. 绑定数据集可以通过设置DataGridView 的DataSource 属性来绑定一个数据集(DataSet)或数据表(DataTable)。
在Visual Studio 的设计器中,通过选择数据源和数据成员来实现绑定,也可以通过代码实现。
例如:dataGridView1.DataSource = dataSet.Tables["TableName"];2. 绑定数据集合除了绑定数据集,还可以绑定数据集合(如List<T>、BindingList<T> 等)。
在数据集合发生变化时,DataGridView 会自动更新显示的数据。
例如:List<User> userList = new List<User>();dataGridView1.DataSource = userList;3. 动态绑定数据绑定数据源后,可以通过设置DataGridView 的AutoGenerateColumns 属性为true,自动根据数据源的结构创建列。
也可以通过手动添加列来控制显示的列数和顺序。
例如:dataGridView1.AutoGenerateColumns = true;三、设置列样式1. 自动调整列宽可以通过设置DataGridView 的AutoSizeColumnsMode 属性来调整列宽。
通常选择AllCells 或Fill,前者会根据列中的内容调整列宽,后者会填充整个控件。
winformListView应⽤之分组、重绘图标、⽹格线⾸先为ListView添加好列:listViewEx1.Columns.AddRange(new ColumnHeader[] { new ColumnHeader("列1"), new ColumnHeader("列2"), new ColumnHeader("列3") });分组这是ListView⾃带的功能,⽤起来也很简单,只需要把ShowGroups设置为true(默认为true),再为ListView添加ListViewGroup,并为ListViewItem设置Group即可,代码如下:ListViewGroup g = new ListViewGroup("分组");listViewEx1.Groups.Add(g);ListViewItem item = new ListViewItem("数据项", g);listViewEx1.Items.Add(item);接下来的重绘⽅法,就需要通过继承ListView并重写OnDrawSubItem(DrawListViewSubItemEventArgs e)⽅法来实现,在重写此⽅法之前,必须设置ListView的OwnerDraw属性为true,⽤于启⽤重绘。
给ListViewSubItem设置图标ListView默认可以设置ImageIndex来显⽰图标,但是只能设置在每个ListViewItem上,即每⼀⾏数据只能有⼀个图标,若要每个ListViewSubItem都能设置图标,则需要通过重写OnDrawSubItem(DrawListViewSubItemEventArgs e)⽅法来实现,关键代码为:Graphics g = e.Graphics;Rectangle r = e.Bounds;Rectangle imageBounds = new Rectangle(r.Location, image.Size);//image为具体的图标⽂件g.DrawImage(image, imageBounds);//通过DrawImage⽅法绘制图标对这种⽅法简单的改造,可以为每⼀列设置单独的图标。
C#,winform,listView动态插入数据#,winform,listView动态插入数据关键字: listview 动态插入数据在点了按钮之后执行这个方法C#代码1.public void InsertSuccess()2. {3. try4. {5. listView1.GridLines = true;//显示行与行之间的分隔线6. listView1.FullRowSelect = true;//要选择就是一行7. listView1.View = View.Details;//定义列表显示的方式8. listView1.Scrollable = true;//需要时候显示滚动条9. listView1.MultiSelect = false; // 不可以多行选择10. listView1.HeaderStyle = ColumnHeaderStyle.Clickable;11.12. listView1.Visible = true;//lstView可见13.14. ListViewItem Item = new ListViewItem();15. Item.SubItems[0].Text = this.textBox1.Text;16. this.listView1.Items.Add(Item);//显示17. }18. catch (Exception ee)19. {20. MessageBox.Show(ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);21. }22. }public void InsertSuccess(){try{listView1.GridLines = true;//显示行与行之间的分隔线listView1.FullRowSelect = true;//要选择就是一行listView1.View = View.Details;//定义列表显示的方式listView1.Scrollable = true;//需要时候显示滚动条listView1.MultiSelect = false; // 不可以多行选择listView1.HeaderStyle = ColumnHeaderStyle.Clickable;listView1.Visible = true;//lstView可见ListViewItem Item = new ListViewItem();Item.SubItems[0].T ext = this.textBox1.Text;this.listView1.Items.Add(Item);//显示}catch (Exception ee){MessageBox.Show(ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);}}这样就不会出现重复数据或者是一些其他错误了整个页面:C#代码/doc/415397109.html,ing System;/doc/415397109.html,ingSystem.Collections.Generic;/doc/415397109.html,ing/doc/415397109.html,ponentModel;/doc/415397109.html,ing System.Data;/doc/415397109.html,ing System.Drawing;/doc/415397109.html,ing System.T ext;/doc/415397109.html,ingSystem.Windows.Forms;/doc/415397109.html,ingSystem.Data.OracleClient;/doc/415397109.html,ing/doc/415397109.html,mon;10./doc/415397109.html,space nwvideo12.{13. public partial class frm_Manage : Form14. {15. public frm_Manage()16. {17. InitializeComponent();18.19. string ConnectionString = "Data Source=dzjc_2005;user=kk;password=kk;";//写连接串20. OracleConnection conn = new OracleConnection(ConnectionString);//创建一个新连接21.22. conn.Open();23. OracleCommand cmd = conn.CreateCommand();24. /doc/415397109.html,mandT ext = "SELECT u_name FROM netvideo.n_user ";//在这儿写sql语句25. OracleDataReader dr = cmd.ExecuteReader();//创建一个OracleDateReader对象26.27. listView1.GridLines = true;//显示行与行之间的分隔线28. listView1.FullRowSelect = true;//要选择就是一行29. listView1.View = View.Details;//定义列表显示的方式30. listView1.Scrollable = true;//需要时候显示滚动条31. listView1.MultiSelect = false; // 不可以多行选择32. listView1.HeaderStyle = ColumnHeaderStyle.Clickable;33.34. // 针对数据库的字段名称,建立与之适应显示表头35. listView1.Columns.Add("操作员姓名", 282, HorizontalAlignment.Center);//第一个参数,表头名,第2个参数,表头大小,第3个参数,样式36. listView1.Visible = true;//lstView可见37.38.39. while (dr.Read())40. {41. ListViewItem Item = new ListViewItem();42. Item.SubItems.Clear();43. //Item.SubItems[0].Text = dr["u_name"].T oString();//读取数据库中字段44. Item.SubItems[0].Text = dr.GetOracleString(0).ToString();//读取数据库中字段45.46. listView1.Items.Add(Item);//显示47. }48. }49. private void button5_Click(object sender, EventArgs e)50. {51. this.Close();52. }53.54. private void button1_Click(object sender, EventArgs e)55. {56. try57. {58. string maxU_id;59.60. string ConnectionString = "Data Source=dzjc_2005;user=kk;password=kk;";//写连接串61. OracleConnection conn = new OracleConnection(ConnectionString);//创建一个新连接62.63. conn.Open();64. OracleCommand cmd = conn.CreateCommand();65.66.//MessageBox.Show("this.textBox1.Text"+this.textBox1.T ext);67. //MessageBox.Show("Login.ID"+Login.ID);68.69. /doc/415397109.html,mandT ext = " select max(u_id)+1 from netvideo.n_user ";//在这儿写sql语句70. OracleDataReader odrr = cmd.ExecuteReader();71. if (odrr.Read())//读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了72. {73. maxU_id = odrr[0].ToString();74. //MessageBox.Show(maxU_id);75.76. /doc/415397109.html,mandT ext = "INSERT INTO netvideo.n_user(u_id,u_name) VALUES('" + maxU_id + "','" + this.textBox1.Text.T oString() + "') ";//在这儿写sql语句77.78.//MessageBox.Show("/doc/415397109.html,ma ndText"+/doc/415397109.html,mandT ext);79.80. int odr = cmd.ExecuteNonQuery();81. if (odr > 0)//读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了82. {83. //MessageBox.Show("添加成功!", "恭喜");84. InsertSuccess();85. }86. else87. {88. MessageBox.Show("添加失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);89. }90. }91.92.93. conn.Close();94. }95. catch (Exception ee)97. MessageBox.Show(ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);98. }99. }100.101. public void InsertSuccess()102. {103. try104. {105. listView1.GridLines = true;//显示行与行之间的分隔线106. listView1.FullRowSelect = true;//要选择就是一行107. listView1.View = View.Details;//定义列表显示的方式108. listView1.Scrollable = true;//需要时候显示滚动条109. listView1.MultiSelect = false; // 不可以多行选择110. listView1.HeaderStyle = ColumnHeaderStyle.Clickable;111.112. listView1.Visible = true;//lstView可见113.114. ListViewItem Item = new ListViewItem();115. Item.SubItems[0].Text = this.textBox1.Text;116. this.listView1.Items.Add(Item);//显示117. }118. catch (Exception ee)119. {120. MessageBox.Show(ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);121. }122. }123.125. 126. } 127.}。
c#中listview控件如何添加信息
2009-05-07 15:36:00| 分类:c# | 标签:|字号大中小订阅
折腾了打扮下午,才搞明白了listview的所以然,记得在大学的时候给外教做过一个项目中,用到了listview 这个控件,但是那是在vb中,和C#的使用还是稍微有点差别,书上介绍的也不多,网上写的也乱七八糟。
下面就通过一个小示例解释一下:
加入想在listview中加入以下两条信息。
通过设计模式添加很简单,这里就不说了,我们通过代码来完成。
//设置listview控件
//MessageBox.Show(listView1.Columns.Count.ToString());//用于说明一共有多少列。
listView1.View =View.Details;// Set the view to showdetails.有的时候,如果不设置这个,那么即使你再设计模式下添加了列,运行的时候也不会显示,这里我们用命令控制他显示,当然,我们也可以再设计模式下的view属性选择Details.
belEdit =true;// Allow the user to edit itemtext.允许用户修改值。
//listView1.AllowColumnReorder = true;//Allow the user to rearrangecolumns.
// Display grid lines.
listView1.GridLines =true;//显示网格线
// Sort the items in the list in ascending order.
// listView1.Sorting = SortOrder.Ascending;
// Create columns for the items and subitems.
//一共三行 listView1.Columns.Add("name");
listView1.Columns.Add("age");
listView1.Columns.Add("rollno");
ListViewItemfirstrecord =new ListViewItem("hope");//这个是第一行第一列
firstrecord.SubItems.Add("22");//第一行第二列
firstrecord.SubItems.Add("1001");//第一行第三列
ListViewItemsecondrecord = newListViewItem("basil");//这个是第二行第一列
secondrecord.SubItems.Add("23");//第二行第二列
secondrecord.SubItems.Add("1002");//第二行第三列
listView1.Items.Add(firstrecord);//把第一行添加上
listView1.Items.Add(secondrecord);//把第二行添加上。