VS windows表单

时间:2018-04-04 07:22:03

标签: windows-forms-designer

我只是想知道是否有一个不那么膨胀和更简单的清除输入元素的方式,由文本框,复选框和组合框组成一个空状态,从他们删除文本等我可能喜欢50+并希望有一个更整洁的方式来做到这一点。

我拥有的另一个场景是一组18个以上的元素,每个元素都有2个文本框和2个复选框,其中一个是启用'选中复选框将启用/禁用其设置。是否有办法创建一个方法来处理这个并进行必要的更改,而不是为每个集合键入相同的事情?

if (cbEnhancedInputOptionEnabled1.Checked == true)
{
    tbEnhancedInputOptionText1.Enabled = true;
    tbEnhancedInputOptionInputID1.Enabled = true;
    cbEnhancedInputOptionDefaultState1.Enabled = true;
}
else
{
    tbEnhancedInputOptionText1.Enabled = false;
    tbEnhancedInputOptionInputID1.Enabled = false;
    cbEnhancedInputOptionDefaultState1.Enabled = false;
}

所以我会根据与该组相关的数字改变其中的18个。每个人都在自己的cbEnhancedOptionEnabled_CheckedChanged事件中。

有没有办法通过引用方法传递控件? ' ll会做同样的事情,但是传递给控件?

1 个答案:

答案 0 :(得分:1)

对于第一个场景,您可以创建一个名为ResetAllControls的方法,您可以在其中将每个控件的状态设置为其默认状态。

对于第二种情况,您可以为每个复选框实施CheckedChanged事件,以控制启用/禁用的内容。

另一种选择是为每个集合中的每个控件提供带前缀的名称。例如,set1_txtBox,set2_ddl等。然后定义一个常用方法。该方法应接受一个参数(基于前缀或设置顺序号)来决定要启用/禁用的集合。在该方法中,您可以循环访问Form的控件列表,并根据参数启用/禁用您希望的控件。最后,您可以为每个复选框实现CheckedChanged事件,该复选框负责启用/禁用每个集的状态。在每个CheckedChanged方法中,您调用公共方法并传递参数。

请告诉我这些是否对您有帮助。