Winform--ListView
列名代替序号定位某一列
dsBill.purchasingNumber = Convert.ToInt32(this.lvStockBillList.SelectedItems[0].SubItems[this.lvStockBillList.Columns["单号"].Index].Text);//采购单号 感觉不行
获取选中行某一列的值
foreach (ListViewItem item in LvOrderstype.SelectedItems)
{
//ID
int IDs = Convert.ToInt32(item.SubItems[0].Text);
//获取医嘱类型做判断该查询绑定哪个数据表
}
填充数据(添加数组方法一)
this.listView2.GridLines = true; //显示表格线
this.listView2.View = View.Details;//显示表格细节//这个重要
this.listView2.LabelEdit = true; //是否可编辑,ListView只可编辑第一列。
this.listView2.Scrollable = true;//有滚动条
this.listView2.HeaderStyle = ColumnHeaderStyle.Clickable;//对表头进行设置
this.listView2.FullRowSelect = true;//是否可以选择行
this.listView2.Columns.Add("ID", 60);
this.listView2.Columns.Add("管理员姓名", 60);
this.listView2.Columns.Add("管理员密码", 60);
this.listView2.Columns.Add("管理员性别", 60);
ListViewItem[] p = new ListViewItem[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
string Row1 = dt.Rows[i]["Ad_No"].ToString();
string Row2 = dt.Rows[i]["Ad_Name"].ToString();
string Row3 = dt.Rows[i]["Ad_Pwd"].ToString();
string Row4 = dt.Rows[i]["Ad_Gender"].ToString();
p[i] = new ListViewItem(new string[] { Row1.ToString(), Row2, Row3, Row4 });
//p[i].SubItems[0].BackColor = Color.Yellow;//设置某行背景色
}
this.listView2.Items.AddRange(p);
//更改属性
this.listView1.GridLines = true; //显示表格线
this.listView1.View = View.Details;//显示表格细节
this.listView1.LabelEdit = 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];
click:单击组件时发生。
ColumnClick:单击列表头时发生
DoubleClick:双击组件时发生
lvDiagnose_MouseDoubleClick双击鼠标事件
MouseClick:用鼠标单击控件时发生
填充数据(方法二)
给listview填充数据:
for (int i = 0; i < 5; i++)
{
ListViewItem lvitem = new ListViewItem();
lvitem.SubItems[0].Text = i.ToString();
lvitem.SubItems.Add("项目编号"+i.ToString());
lvitem.SubItems.Add("项目名称" + i.ToString());
lvitem.SubItems.Add("项目负责人" + i.ToString());
lvitem.SubItems.Add("项目年度-" + i.ToString());
listView1.Items.Add(lvitem);
}
将listview选中行的第一列的值输出
private void lvAccountList_SelectedIndexChanged(object sender, EventArgs e)
{
//在此处设断点,发现点击不同的Item后,此事件居然执行了2次 //第一次是取消当前Item选中状态,导致整个ListView的SelectedIndices变为0
//第二次才将新选中的Item设置为选中状态,SelectedIndices变为1
//如果不加listview.SelectedIndices.Count>0判断,将导致获取listview.Items[]索引超界的异常
if (listview.SelectedIndices != null && listview.SelectedIndices.Count>0)
{
ListView.SelectedIndexCollection c = listview.SelectedIndices;
lblTitle.Text = listview.Items[c[0]].Text;
}
}
在Winform的ListView上面鼠标放到某一行的时候,如何出现类似 Vs2005 黄底黑字的提示一样,最好形状能够不规则?
实现黄底黑字的提示效果用ToolTip控件:
如何修改listview某一行,某一列的值
获取当期时哪一行
这个已经测试过,0代表的是你选中的是第一个元素,1是第2个依次类推。
你可以用(listView1.Items.IndexOf(listView1.FocusedItem)+1)