选项卡索引不适用于单选按钮

时间:2014-07-28 14:36:04

标签: c# winforms tabs radio-button

这是我询问的表格的一部分

enter image description here

这是标签索引:

enter image description here

tabFarmer Audi Status转到Yes然后转到Ownder银行名称而不是转到否

的问题

请注意,是和否分别有0.1.6.00.1.6.1

你可以帮我吗?

注意

这两个单选按钮的TabStop属性为True

2 个答案:

答案 0 :(得分:9)

来自How to: Set the Tab Order on Windows Forms(MSDN):

  

单选按钮组在运行时有一个制表位。选中的按钮(即Checked属性设置为true的按钮)的TabStop属性自动设置为true,而其他按钮的TabStop属性设置为false。

换句话说,你所看到的是正常的。那些"是/否"单选按钮位于同一组中,您无法在同一组中的单选按钮之间进行选项卡。在选项卡中,您只关注当前选定的一个,然后移动到表单上的下一个控件(在您的情况下,为TextBox)。

要解决此问题,您可以将每个单选按钮放在自己的容器中(例如面板),这意味着您有两个"组"每个都有一个单选按钮。但是,当您选择另一个时,您将失去自动取消选择一个单选按钮的内置功能。您的用户将能够选择两个单选按钮,因此您需要添加一些禁用另一个的逻辑。如果你决定试试这个,试试单选按钮' CheckedChanged或Click / MouseClick事件。

正如史蒂夫所说,并且正如他所链接的答案所述,开箱即用的方式是Windows的预期行为,所以在覆盖它之前请三思而后行,除非你有充分的理由这样做。

答案 1 :(得分:2)

它对我有用!

首先你必须创建一个这样的方法:

-(void)setImageBackground:(NSString*)imageName{
    UINavigationController* navigationController = [self navigationController];
    float height = navigationController.toolbar.frame.size.height;
    CGSize size = self.view.frame.size;
    size.height = size.height;
    UIGraphicsBeginImageContext(size);
    CGRect bounds = self.view.bounds;
    bounds.origin.y = bounds.origin.y + height;
    bounds.size.height = bounds.size.height-height;
    [[UIImage imageNamed:imageName] drawInRect:bounds];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    self.view.backgroundColor = [UIColor colorWithPatternImage:image];
}

然后,将它放在Form_Load事件中:

private void TabStopChanged(object sender, EventArgs e)
{
     ((RadioButton)sender).TabStop = true;
}