[WinForm]C# Listview中添加Button
本程序实现的效果是当鼠标点击控件的一行,在所选行的末尾出现一个button按钮,并为button按钮添加响应事件
工程准备
首先我们创建一个C#的窗体应用程序,起名WFAListViewBtn.控件准备
给窗体添加一个ListView控件,这里的ID就是默认的就好了.
控件的属性需要一下3处修改- View属性改为Detail
- FullRowSelect 属性改为True
- 点击Columns添加三列
定义变量
这个变量就是关于Button控件的,定义代码如下:
private Button btn = new Button();
- 添加窗体响应事件
双击窗体,添加窗体的初始加载函数,代码如下:
private void Form1_Load(object sender, EventArgs e)
{
ListViewItem[] lvs = new ListViewItem[3];
lvs[0] = new ListViewItem(new string[] { "行1列1", "行1列2", "" });
lvs[1] = new ListViewItem(new string[] { "行2列1", "行2列2", "" });
lvs[2] = new ListViewItem(new string[] { "行3列1", "行3列2", "" });
this.listView1.Items.AddRange(lvs);
btn.Visible = false;
btn.Text = "...";
btn.Click += this.button_Click;
this.listView1.Controls.Add(btn);
this.btn.Size = new Size(this.listView1.Items[0].SubItems[2].Bounds.Width,
this.listView1.Items[0].SubItems[2].Bounds.Height);
}
- 双击listView控件
添加SelectedIndexChanged响应事件,函数代码如下:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
ListViewItem[] lvs = new ListViewItem[3];
if (this.listView1.SelectedItems.Count > 0)
{
this.btn.Location = new Point(this.listView1.SelectedItems[0].SubItems[2].Bounds.Left,this.listView1.SelectedItems[0].SubItems[2].Bounds.Top);
this.btn.Visible = true;
}
}
- button按钮响应事件
代码如下:
private void button_Click(object sender, EventArgs e)
{
MessageBox.Show(this.listView1.SelectedItems[0].SubItems[0].Text);
}
到此为止,代码的准备功能就完成了,点击运行,查看实现效果.如下图: