【问题标题】:hide all usercontrol and show only one usercontrol c#隐藏所有用户控件并仅显示一个用户控件 c#
【发布时间】:2020-01-22 19:21:15
【问题描述】:

我正在尝试使用 Guna.UI 框架在 Winforms 中编写一些 UI 代码。但是在为多控件应用 Hide() 和 Show() 函数时,我很难为 void() 函数中的控件分配如此多的任务。如何最小化代码并将其重构为适当的结构?

以下是我的代码示例:

 private void gunaButton4_Click(object sender, EventArgs e)
    {
        if (comboboxvivo.Text.Equals("Vivo V11 Pro")) V11Pro();

    }
    void V11Pro()
    {
        v11Pro1.Show();
        v11Pro1.BringToFront();
        testpointblank1.Hide();
        //vivohide//
        v91.Hide();
        v7Plus1.Hide();
        v71.Hide();
        y93Y951.Hide();
        y911.Hide();
        x231.Hide();
        //oppohide//
        a831.Hide();
        f91.Hide();
        f71.Hide();
        f51.Hide();
        rmX18311.Hide();
        rmX18311.Hide();
        //xiaomihide//
        redmi3x1.Hide();
        redmi5a1.Hide();
    }

【问题讨论】:

  • 请在这里澄清您的问题究竟是什么
  • 对不起兄弟,但我的问题是我的代码如何变得更小到许多 hide();代码对不起我的帖子我是新生
  • 将它们放在一个数组或列表中,从那里隐藏所有内容,之后可能只显示一个?
  • 这是什么 UI 框架?将要隐藏的控件分组到某种面板中,然后隐藏面板可能是一种更清晰、更灵活的方法,尽管没有提供控件的结构。
  • @SamiKuhmonen 是的,先生,我正在使用多用户控制

标签: c# winforms refactoring


【解决方案1】:

我不知道 Guna UI 是什么(我印象深刻的是有些东西没有 StackOverflow 标签)。但是,假设所有这些控件都继承自某个公共基类,例如 Control,那么您可以执行以下操作:

var controls = new List<Control>
{
    button1, button2, button3,    //etc.
};
controls.ForEach(c => c.Hide());

没有更多的打字,但更容易维护。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多