沒寫過幾篇部落格,就當練練手,記錄一下筆記,不喜勿噴。
開始本文
本程式實現的效果是當滑鼠點擊控制項的一行,在所選行的末尾出現一個button按鈕,並為button按鈕添加響應事件。
1、工程準備。首先我們建立一個C#的表單應用程式,起名WFAListViewBtn。
2、控制項準備。給表單添加一個ListView控制項,這裡的ID就是預設的就好了。控制項的屬性需要一下3處修改:
View屬性改為Detail,FullRowSelect 屬性改為True,點擊Columns添加三列。
3、定義變數。這個變數就是關於Button控制項的,定義代碼如下:
private Button btn = new Button();
4、添加表單響應事件。雙擊表單,添加表單的初始載入函數,代碼如下:
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); }
5、ListView點擊事件。雙擊listView控制項,添加SelectedIndexChanged響應事件,函數代碼如下:
private void listView1_SelectedIndexChanged(object sender, EventArgs e) { 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; } }
6、button按鈕響應事件。代碼如下:
private void button_Click(object sender, EventArgs e) { MessageBox.Show(this.listView1.SelectedItems[0].SubItems[0].Text); }
到此為止,代碼的準備功能就完成了,點擊運行,查看實現效果。如下圖:
點擊後面的button,顯示下圖