如何使用快捷方式 C# 更改 ComboBox 的选定值
How to change selected value of a ComboBox with a shortcut C#
首先让我说我是 C# 的新手...
我正在使用 WinForms:我尝试使用此代码通过快捷方式更改 ComboBox 的值。我也尝试过使用 SelectedValue 而不是 SelectedIndex。之后,我尝试在 ComboBox 更改值之前或之后关注它。最后我尝试将其转换为 stwitch 语句,但每次执行它时都没有任何反应。
我正在使用 Visual Studio 2017 - 当我尝试调试它时,调试器告诉我,在它执行 if 语句内的代码后,它进入 else 语句并再次执行代码...
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.E)
{
//CBoxLimit.Focus();
if (CBoxLimit.SelectedIndex == 0)
{
CBoxLimit.SelectedIndex = 1;
}
else
{
CBoxLimit.SelectedIndex = 0;
}
//CBoxLimit.Focus();
}
}
在此先感谢您的帮助...
您似乎应该更改 ComboBox
实例上的 SelectedIndex
而不是 CBoxLimit
上的 SelectedIndex
。您还应该将表单的 KeyPreview
属性 设置为 True
(参见 here):
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.E)
{
comboBox1.SelectedIndex = 1;
}
}
首先让我说我是 C# 的新手...
我正在使用 WinForms:我尝试使用此代码通过快捷方式更改 ComboBox 的值。我也尝试过使用 SelectedValue 而不是 SelectedIndex。之后,我尝试在 ComboBox 更改值之前或之后关注它。最后我尝试将其转换为 stwitch 语句,但每次执行它时都没有任何反应。
我正在使用 Visual Studio 2017 - 当我尝试调试它时,调试器告诉我,在它执行 if 语句内的代码后,它进入 else 语句并再次执行代码...
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.E)
{
//CBoxLimit.Focus();
if (CBoxLimit.SelectedIndex == 0)
{
CBoxLimit.SelectedIndex = 1;
}
else
{
CBoxLimit.SelectedIndex = 0;
}
//CBoxLimit.Focus();
}
}
在此先感谢您的帮助...
您似乎应该更改 ComboBox
实例上的 SelectedIndex
而不是 CBoxLimit
上的 SelectedIndex
。您还应该将表单的 KeyPreview
属性 设置为 True
(参见 here):
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.E)
{
comboBox1.SelectedIndex = 1;
}
}