C# 箭头键和更改控件';s focus挂起应用程序
我有一个用户控件,它包含一个带有一组单选按钮的C# 箭头键和更改控件';s focus挂起应用程序,c#,winforms,keyboard,C#,Winforms,Keyboard,我有一个用户控件,它包含一个带有一组单选按钮的FlowLayoutPanel(自上而下的流)。该控件公开一个CheckedChanged事件,每当单选按钮的一个检查更改时触发该事件 我的表单包含usercontrol和文本框。我订阅了usercontrol的CheckedChanged事件,根据选中的radiobutton,我要么禁用文本框,要么将焦点放在文本框内 当更改radiobutton的检查状态时,所有这些都可以与mouseclick配合使用。但是,在使用箭头键时,此选项将无限期挂起。我
FlowLayoutPanel
(自上而下的流)。该控件公开一个CheckedChanged
事件,每当单选按钮的一个检查更改时触发该事件
我的表单包含usercontrol和文本框。我订阅了usercontrol的CheckedChanged
事件,根据选中的radiobutton,我要么禁用文本框,要么将焦点放在文本框内
当更改radiobutton的检查状态时,所有这些都可以与mouseclick配合使用。但是,在使用箭头键时,此选项将无限期挂起。我不明白为什么会有不同
以下是复制我看到的行为的步骤:
FlowLayoutPanel
控件并设置其FlowDirection=TopDown
。然后将两个单选按钮添加到FlowLayoutPanel
public event EventHandler CheckedChanged
{
add { radioButton2.CheckedChanged += value; }
remove { radioButton2.CheckedChanged -= value; }
}
启用设置为False。订阅usercontrol的CheckedChanged
事件,如下所示
private void userControl11_CheckedChanged(object sender, EventArgs e)
{
textBox1.Select();
}
嗯,
值
未初始化?还是我遗漏了什么?我打赌你的问题没有包含足够的信息来解决这个问题。您能否编写一个尽可能简单(代码行数最少)的测试用例来演示问题并将其添加到此处?解决方案:
public event EventHandler CheckedChanged
{
add {
radioButton2.CheckedChanged += value;
}
remove {
radioButton2.CheckedChanged -= value;
}
}