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控件:

private void listView1_MouseMove(object sender, MouseEventArgs e)
        {
            ListViewItem item = this.listView1.GetItemAt(e.X, e.Y);
            if (item != null)
            {
                toolTip1.Show(item.Text, listView1, new Point(e.X + 15, e.Y + 15), 1000);
                toolTip1.Active = true;
            }
            else
            {
                toolTip1.Active = false;
            }
        }
实现形状不规则用ToolTip控件的SetToolTip方法

 

如何修改listview某一行,某一列的值

 
问?:
ListView.Items[行号-1].SubItems[列号-1].Text = 值.

 

 获取当期时哪一行

这个已经测试过,0代表的是你选中的是第一个元素,1是第2个依次类推。
你可以用(listView1.Items.IndexOf(listView1.FocusedItem)+1)

posted @ 2012-05-27 10:37  风与雨无阻  阅读(1748)  评论(0编辑  收藏  举报