winforms 变量从面板C#中消失[已关闭]

js5cn81o  于 2022-11-17  发布在  C#
关注(0)|答案(1)|浏览(137)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
三个月前关门了。
Improve this question
我试图导入一个面板,并将其设置为在函数“运行/执行”时可见。我的问题是我有一个静态类,需要设置一些控件的visible = false,当我导入

var th_boosty = new Boosty();

这样,面板消失。

static Panel panel = new Panel();

public Boosty()
{
    Controls.Add(panel);
    InitializeComponent();
}

public static void Add()
{
    var th_boosty = new Boosty(); // This disappear my panel

    panel.Visible = true;
    panel.Dock = DockStyle.Fill;
    panel.BackColor = Color.FromArgb(80,80,80);

    th_boosty.panel2.BringToFront();
    th_boosty.panel4.BringToFront();
}
eqfvzcg8

eqfvzcg81#

Boosty表单的每个示例都需要一个面板示例,即panel不能是静态的。

public partial class Boosty : Form
{
    private Panel panel = new Panel {
        Visible = true,
        Dock = DockStyle.Fill,
        BackColor = Color.FromArgb(80, 80, 80)
    };

    public Boosty()
    {
        Controls.Add(panel);
        InitializeComponent();
    }

    public static void Add()
    {
        var th_boosty = new Boosty(); // This disappear my panel
        th_boosty.panel2.BringToFront();
        th_boosty.panel4.BringToFront();
        th_boosty.Show();
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        Boosty.Add(); // Added this for a test.
    }
}

由于您无法从静态方法访问示例字段,因此我使用对象初始化器配置了面板。
在调用th_boosty.Show();之前,窗体将不可见。
我不确定您要取得什麽。如果panelDockStyle.Fill,任何其他未停驻的控件都会保持隐藏。在panel2panel4上呼叫BringToFront()可能不会有帮助。您可能必须建立一个有其他面板的UserControl,而不是使用简单的Panel

相关问题