我有一個列表框,它填充了項目,我想知道如何:添加右鍵/上下文菜單列表框項目在C#
- 當你在列表框中點擊右鍵,該的RightClicked項目將被選中,
- 一個右鍵菜單將有幾個項目被顯示.. 當你點擊任何項目,相應的空白將被觸發的
- ...
在此先感謝您的幫助和代碼ex請給我點心!
我有一個列表框,它填充了項目,我想知道如何:添加右鍵/上下文菜單列表框項目在C#
在此先感謝您的幫助和代碼ex請給我點心!
這對我來說就像是一個「家庭作業」問題,所以我會回答(我希望)給你幾個指針來解決這個問題。
一期
...
二期
運行測試程序並觀察報告什麼事件鼠標左鍵向下和右的區別 - 鼠標向下(假設您的環境將上下文點擊設置爲鼠標右鍵......這可能不適用於所有人)。
專注於您可以通過上下文單擊進行截取的一個事件。
將上下文菜單添加到測試項目,並將該上下文菜單設置爲ListBox的上下文菜單。
驗證您現在可以右鍵點擊列表框和上下文菜單中就會出現一個項目,但該事件仍是處理案件被處理程序YOU「發現」,在步驟2中
現在去通過列表框的所有事件處理程序,並找出哪一個可以用來檢測,給定列表框中的某個位置,哪個列表項被「命中」。
一旦你可以確定右鍵單擊哪個List Item,並且你知道你的上下文菜單正在工作,你只有確保右鍵單擊的List Item被選中的問題,這很容易。
想象一下,你自己會教會你幾個非常有用的東西,你稍後可以在其他控件編程中使用。
好運,比爾
1.當你右擊在列表框中,是正確的點擊項將被選中
2.A右鍵菜單將有幾個項目被顯示..
private void listBoxNode_MouseUp(object sender, MouseEventArgs e)
{
int location = listBoxNode.IndexFromPoint(e.Location);
if (e.Button == MouseButtons.Right)
{
listBoxNode.SelectedIndex = location; //Index selected
contextMenuStrip1.Show(PointToScreen(e.Location)); //Show Menu
}
}
3.當你點擊任何項目,相應的空白將被觸發的..
private void showDetailsToolStripMenuItem_Click(object sender, EventArgs e)
{
//put your code here after clicking
//on items in context menu
}
「一相應的空白將被觸發「:這是什麼意思?我認爲你的意思是根據用戶選擇哪個菜單項來觸發一個方法/程序。 – BillW 2009-11-14 09:03:06
wpf或winforms? – Peter 2009-11-14 09:25:45
這是一個有用的問題;它只是需要一些小的編輯。 – JYelton 2010-05-18 19:03:10