C#动态创建listview并添加单击事件
用 C# 开发 Winform 程序,大多情况下,listview控件都是直接拖到窗体中,直接设置属性和用 ImageList控件设置其宽度和高度就可以满足需要;但某些时候,事先要求不生成 listview,用到才动态创建,此时就得用代码动态添加。
动态创建listview 不外乎就是定义一个 listview 对象,同样很简单;如果不添加单击事件,的确简单,直接定义一个对象然后参照其属性设置需要属性;如果要添加listview单击事件并在该事件中进行相关操作,就比把 listview 拖到窗体的情况麻烦一点,从未动态添加过单击事件,可能一时半会不知如何添加,添加完后又怎么在单击事件中获取动态创建的 listview 对象。
动态创建listview并添加单击事件示例:
假如要用 listview 动态显示分类,点击某一类时显示该类的所有产品,实现代码如下:
/// <summary>
/// C# listview动态添加、动态创建方法
/// </summary>
private void AddCategories()
{
ListView lvCategory = new ListView();
lvCategory.View = View.LargeIcon;
lvCategory.BorderStyle = BorderStyle.None;
lvCategory.Cursor = Cursors.Hand;//设置鼠标为手指型
lvCategory.Left = 430;
lvCategory.Width = 500;
lvCategory.BackColor = Color.lFromArgb(216, 222, 230);//背景颜色
//添加单击事件
lvCategory.SelectedIndexChanged += new EventHandler(lvCategory_SelectedIndexChanged);
lvCategory.Items.Add("电脑");
lvCategory.Items.Add("笔记本电脑");
lvCategory.Items.Add("手机");
lvCategory.Items.Add("数码相机");
lvCategory.Items.Add("液晶电视");
lvCategory.Items.Add("洗衣机");
this.Controls.Add(lvCategory);
}
// listview单击事件
private void lvCategory_SelectedIndexChanged(object sender, EventArgs e)
{
ListView lvCategory = (ListView)sender;//获取动态创建的listview对象
if (lvCategory.SelectedItems.Count > 0)
{
string categoryName = lvCategory.SelectedItems[0].SubItems[0].Text;//绑定产品
}
}
定义 listview 对象很简单,关键是在单击事件中怎么获取到那个新创建的对象,代码中用 (ListView)sender 即可实现。
-
相关阅读
- Excel Find函数和FindB函数使用方法的10个实例,含
- C# listview选择行(多行)
- Excel制作单双控件动态图表,含用组合框、选项按钮动
- listview修改选中行项的颜色和加加粗字体 Winf
- Excel Match函数的使用方法的8个实例,含与Sum、Of
- 解决C# listview多线程调用闪烁问题与注意
- select选择值触发事件onchange(动态
- C# listview添加行或项并设置颜色
- C# ListView控件显示表格(自适应宽度),添加 Chec
- C# listview行高设置完整实例
- Winform用代码动态添加控件
- 网页载入后,为元素(div、img、text、button)动