我知道有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'在你点击表格本身时触发......只需处理单个控件的点击。 –