C# 如何使用复选框在不同字段之间进行更改?

C# 如何使用复选框在不同字段之间进行更改?,c#,winforms,C#,Winforms,我正在用C设计一个windows窗体,其中有一个复选框叫做“电子传递”。它下面是一个电子邮件地址字段。现在我想添加一个选项,即只有选中复选框,电子邮件字段才可见。 如果复选框未选中,我希望在那里有一个不同的字段。 我知道如何在代码端处理这个问题,使内容可见/隐藏,但是如何在表单中放置字段呢?我应该把一个放在另一个上面吗?那么我将无法访问下面的一个来更改它的属性。 或者我应该只保留一个字段并在代码中更改其名称吗?您可以将控件放置在FlowLayoutPanel控件中。FlowLayoutPanel

我正在用C设计一个windows窗体,其中有一个复选框叫做“电子传递”。它下面是一个电子邮件地址字段。现在我想添加一个选项,即只有选中复选框,电子邮件字段才可见。 如果复选框未选中,我希望在那里有一个不同的字段。 我知道如何在代码端处理这个问题,使内容可见/隐藏,但是如何在表单中放置字段呢?我应该把一个放在另一个上面吗?那么我将无法访问下面的一个来更改它的属性。
或者我应该只保留一个字段并在代码中更改其名称吗?

您可以将控件放置在FlowLayoutPanel控件中。FlowLayoutPanel控件以水平或垂直流动方向动态排列其内容


你可以按照你的建议把它们一个放在另一个上面。您说过您不想这样做,因为这样会使选择控件的属性变得困难

您可以从VisualStudio属性部分的组合框下拉菜单中选择控件


您应该创建两个不同的面板,并根据需要添加对象。在复选框中放置可见和隐藏代码后,选中事件。 试试吧,它会有用的。
您可以简单地将面板和所有对象一起移动,这非常简单。

请参见,这样我就可以在表单中只放置一个字段,然后将其隐藏,并从代码内部创建一个新字段,然后在它们之间以可视性进行更改。您可以在设计时使用设计器添加控件,然后在运行时切换它们的可见性,但在设计器中查看时,这可能会使窗体看起来很混乱,因为控件彼此重叠。ControlCollection允许您通过代码动态执行相同的操作,可能是更简洁的解决方案。我不确定这对我的情况有何帮助。有很多方法可以实现您的目标,但这里的想法是允许FlowLayoutPanel在显示和隐藏某些控件时自动重新排列控件布局。哦,所以我会把FlowLayoutPanel中的两个字段放在不同的位置,然后它们会自动移动到正确的位置?没错。FlowLayoutPanel将可见控件放在一起,消除隐藏控件可能留下的空白。我认为这是一种糟糕的编程风格