我知道有Listbox選擇索引更改問題浮動。但是,這個問題關注的是另一個問題。我有一個列表框,在表單上有一些字符串。我試圖完成的是能夠滾動列表框中的項目(,即使用箭頭鍵導航到特定項目)。一旦我導航到我想要的物品,我想要能夠按下物品上的輸入並繼續我的應用程序。所以,問題是如何確定在列表框中引發的事件類型,以便將該事件與Mouse Click事件或Keydown事件進行比較,從而允許我根據結果決定要執行的條件語句布爾表達式的原因......我需要確定類型的原因是因爲如果用戶按下selectedIndexed Item上的ENter對話框出現,那麼每當用戶突出顯示一個新項目時,就會出現對話框(您可以看到如何是個問題)。確定在列表框,選定索引更改中引發的事件類型。 C#
的僞代碼
if (Listbox_Selected_Event_EventType isEqualTo Mouse_Click)
{
// execute code
} else if (Listbox_Selected_Event_EventType isEqualTo KeydownEvent)
{
// execute code
}
完成的代碼感謝埃文,
private void listBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
if (e.KeyChar == (char)Keys.Return)
{
var file = Directory.GetFiles(urlHistoryFolder, listBox1.Text).FirstOrDefault();
String line;
try
{
using (StreamReader sr = new StreamReader(file))
{
line = sr.ReadToEnd();
}
DialogResult result1 = MessageBox.Show("Are You sure you want to Load this WebService", "Important Question", MessageBoxButtons.YesNo);
if (result1 == DialogResult.Yes)
{
//MessageBox.Show("Loading WebService");
textEndPointUri.Text = line;
listBox1.Visible = false;
GetBtn_Click(sender, e);
}
}
catch (Exception exp)
{
Console.WriteLine("File could not be read:");
Console.WriteLine(exp.Message);
}
}
}
}
'SelectedIndexChanged'每次在ListBox中選擇一個項目時觸發。我只是單獨處理'MouseClick'和'KeyUp'事件並向兩者添加代碼以執行所需操作。事件的命名是相當邏輯的,因此找出你想處理的事情應該沒有問題。 –
仍然,你必須確定是否選擇了一個項目,鼠標點擊方法觸發每次你點擊該形式..這就擊敗了目的。你基本上只是回答了我原來的問題。 – KING
您可以確定是否在兩個事件處理程序中選擇或選擇哪個項目。我在下面的答案中添加了一些代碼。此外,鼠標點擊事件觸發表單上的單個控件,而不是每次單擊時控制每個控件。 'ListBox1_Click'在你點擊'ListBox'時觸發,'Form1_Click'在你點擊表格本身時觸發......只需處理單個控件的點擊。 –