我有一个表单,我有两个单选按钮和两个可互换的控件(由ListView和一些按钮组成)。根据选择的单选按钮,我想向用户显示正确的控件。
我现在这样做的方法就是加载两个控件并设置一个OnRadioButtonSelectionChanged()方法,该方法在表单加载时调用(设置初始状态)并随时更改选择。此方法只是将每个控件的visible属性设置为正确的值。
这似乎运作得很好,但我很好奇是否有更好或更常见的做法?
答案 0 :(得分:3)
private void OnRadioButtonCheckedChanged(object sender, EventArgs e)
{
Control1.Visible = RadioButton1.Checked;
Control2.Visible = RadioButton2.Checked;
}
答案 1 :(得分:2)
嗯,你也可以使用数据绑定......对我来说似乎有点优雅。假设您有两个单选按钮“rbA”和“rbB”以及两个文本框“txtA”和“txtB”。并且您希望仅在检查rbA时才能看到txtA,并且只有在选中rbB时才能看到txtB。你可以这样做:
private void Form1_Load(object sender, EventArgs e)
{
txtA.DataBindings.Add("Visible", rbA, "Checked");
txtB.DataBindings.Add("Visible", rbB, "Checked");
}
然而......我观察到使用UserControls而不是TextBoxes会破坏功能,我应该在网上阅读为什么..
LATER EDIT:
数据绑定双向工作! :如果以编程方式(从其他位置)将txtA的可见性设置为false,则rbA将变为未选中状态。这就是数据绑定的美妙。