【问题标题】:Show some controls based on radio button choice根据单选按钮选择显示一些控件
【发布时间】:2019-01-31 03:44:55
【问题描述】:

我正在做一个示例考试作业,我必须制作一个表格,根据不同的表格选择构建不同的形状。

我有一个带有 3 个选项的单选按钮组。根据所选选项,我必须显示下一组更多选项。这样做的正确方法是将几个Panel 与不同的按钮一个接一个地放置,在从第一组中选择一个单选按钮时将所有按钮都隐藏并只显示一个,还是有更标准的方法?

【问题讨论】:

  • 与设计师重叠面板时要小心。您可能会无意中使一个面板成为另一个面板的子级。最好将面板留在不同的位置,只有一个在正确的位置。在 Form_Load 事件或 InitializeComponent 之后,将其他面板准确地移到第一个面板的 Location 位置
  • @Steve 是对的,这应该是答案。让控件相互重叠对于任何审查设计的人来说都是一件痛苦的事。在您想要的位置创建初始面板,在表单上的其他位置关闭可见性创建其他面板,然后隐藏初始面板并将主题面板移动到其位置。

标签: c# winforms


【解决方案1】:

这似乎是处理这种情况的正确方法。 但是我不建议将面板与表单设计器重叠。 您很可能无意中将一个面板设为另一个面板的子面板。
我更喜欢将面板留在不同的位置,只有一个在正确的位置。
在 Form_Load 事件或 InitializeComponent 之后,我将其他面板准确地移到第一个面板的 Location 位置

例如

public class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        panel2.Location = panel1.Location;
        .....
    }
}

【讨论】:

  • 我还是会这样做:panel1.Visible = false; 以防 Z 订单被抬高。
  • 那可以留在设计器中。每个面板都以 Visible = False 开头,除非您希望一个默认可见。
  • 如果他与设计师一起设计面板,则不会......默认情况下它们是可见的。
  • 我们说的是同一件事。只是我认为当他说隐藏所有面板时,他是与设计师一起这样做的。
  • 非常感谢,成功了!
猜你喜欢
  • 2010-11-05
  • 1970-01-01
  • 2018-02-27
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2013-12-24
相关资源
最近更新 更多