【问题标题】:Buttons don't always work [duplicate]按钮并不总是有效[重复]
【发布时间】:2018-12-09 14:01:01
【问题描述】:

我在我的主窗体中使用一个面板来打开程序中的所有其他窗体,我在左侧有一个菜单,其中有每个窗体的按钮和其他东西的子菜单,当我什么都没有时它可以工作加载在面板中,但是当我执行菜单上的按钮时,有时会起作用,有时却不起作用...

这里有两张菜单截图

这是我用来在面板内打开表单的代码

private void abrirHijo(object formHijo)
    {

        panelContenedor.Controls.Clear();            

        Form fh = formHijo as Form;
        fh.TopLevel = false;
        fh.Dock = DockStyle.Fill;
        this.panelContenedor.Controls.Add(fh);
        this.panelContenedor.Tag = fh;
        fh.Show();
    }

【问题讨论】:

  • 试用用户控制器:stackoverflow.com/questions/1379493/…
  • 听起来你的代码被阻止了。从菜单尝试:调试:全部中断。查看代码在哪里停止以了解导致问题的原因。您可能想查看调用堆栈:调试:Windows:调用堆栈。
  • @Sachith 将整个事情更改为用户控制器是不可行的,我已经有很多表格了

标签: c# panel


【解决方案1】:

所以我最终解决了这个问题,因此出于某种原因,垂直菜单中的菜单中的按钮作为控件添加到我用来放入表单的面板中,因此当我使用 “panelContenedor.Controls.Clear();”我最终删除了所有按钮,所以我最终这样做了,它可以工作

if (panelContenedor.Controls.Count > 6) //it is six because i have 5 controls and when i open a form it turns to six, so if i have a sixth control it means that i have a form open and so i must close it
        {
            panelContenedor.Controls.RemoveAt(6);                                    
        }


        Form fh = formHijo as Form;
        fh.TopLevel = false;
        fh.Dock = DockStyle.Fill;
        this.panelContenedor.Controls.Add(fh);
        this.panelContenedor.Tag = fh;
        fh.Show();

【讨论】:

    猜你喜欢
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 2020-08-16
    相关资源
    最近更新 更多