關於給Winform的ListView控制元件新增右鍵選單的問題
阿新 • • 發佈:2019-01-10
想要在listView上面右鍵取得如下圖所示的效果:即 滑鼠右鍵點選內容區和列標題時彈出不同的選單項。
首先,新增兩個ContextMenuStrip,即contextMenuStrip1 和 contextMenuStrip2,並設定好相應的選單項。
然後,就可以利用listView1.ContextMenuStrip 屬性,這個屬性指定選單1,在右擊列標題、內容區、空白區,都會彈出。 最後,需要做的就是,在右擊內容區的時候,換個選單2。當選單2關閉後,再把listView1.ContextMenuStrip 設定回選單1。 如果需要控制空白區彈出的選單,可另外使用MouseUp事件。下面貼出程式碼供大家參考:
public Form1() { InitializeComponent(); listView1.ContextMenuStrip = contextMenuStrip2;
contextMenuStrip2.Closed += new ToolStripDropDownClosedEventHandler(contextMenuStrip2_Closed); }
void contextMenuStrip2_Closed(object sender, ToolStripDropDownClosedEventArgs e) { listView1.ContextMenuStrip = contextMenuStrip1; }
private void listView1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { listView1.ContextMenuStrip = null; contextMenuStrip2.Show(listView1, e.Location); MessageBox.Show("MouseButton Right Clicked"); } }
但是 具體問題還要具體分析,可根據需要稍作修改。