我有一个Windows窗体具有一堆控制,其中之一是含一组单选按钮的FlowLayoutPanel的GUI。
我可以选项卡,第一个单选按钮(TabIndex的和接受tab正确设置),但是当我再次按下Tab键,它带我去的形式,而不是在FlowLayoutPanel中的下一个单选按钮上的下一个控件。
一旦第一个单选按钮具有焦点,要经过该组的唯一方式是使用上/下箭头,但实际上选择的单选按钮。 选择一个单选按钮揭开序幕一些其他的东西,所以我只是想办法通过TAB键列表搞清楚什么选择。
我想要什么,理想情况下,是让每个单选按钮的行为就像在页面上的任何其他控制和允许我通过TAB键全团不选择单选按钮,直到我打的空间。
此选项卡顺序是默认的Windows行为,它是改变这种情况很少好的做法。
它发生作为一个组中的单选按钮已经接受tab玩弄这样的工作方式。
要改变这种情况,明确设置制表位为true每次都被复位:
public Form1()
{
InitializeComponent();
foreach (var control in this.flowLayoutPanel1.Controls.OfType<RadioButton>())
{
control.GotFocus += (s,a) => SetTabStops(flowLayoutPanel1);
control.CheckedChanged+= (s,a) => SetTabStops(flowLayoutPanel1);
}
}
private static void SetTabStops(Control host)
{
foreach (Control control in host.Controls)
{
control.TabStop = true;
}
}