C# WinForm 自定义控件,怎样在设计时动态增加按钮并在设计时点击响应函数?

现在想开发一个导航菜单,思路为:
1、自定义控件增加智能标签;
2、智能标签中增加新增菜单组的命令;
3、使用时,自定义控件拖到设计窗口中,点击增加菜单组后自动生成一个按钮和一个Panel;
4、自动生成的按钮,可以在设计时点击响应函数,对生成的面板隐藏或展开。

目前遇到的情况:
1、在设计时生成按钮后,调用自定义控件中的创造按钮函数,可以生成按钮,并能点击响应相应的函数。
2、但在主程序运行时,设计时生成的按钮根本就没有。
3、创建按钮的函数代码如下:
Button btn = new Button();
btn.Text = "SSS";
btn.Dock = DockStyle.Top;
this.Controls.Add(btn);
4、在代码中加入:
this.Container.Add(btn)可以在运行时显示增加的按钮,但在设计时,按钮没有动作,应用到窗口时,也需要重写响应函数。

本人C#新手一枚,请各位大侠指点一下,有什么办法能够让代码生成的按钮,在设计时和运行时都能显示按钮,并在两种情况下都响应设定好的响应函数?谢谢!

c#

1个回答

动态生成的物件要在运行时才能看到

 private void Form1_Load(object sender, EventArgs e)
        {
            //产生一个button
            Button btn = new Button();
            //
            btn.Text = " test ";
            //设定物件名称
            btn.Name = " Button1";
            btn.BackColor = Color.White;

            //将 button 加入 panel 中
            panel_UIPanel.Controls.Add(btn);
            //设定位置
            btn.Left = (panel_UIPanel.Width / 2) - btn.Width/2;
            btn.Top = (panel_UIPanel.Height / 2) - btn.Height / 2;
            //设定位置2
            //btn.Location = new Point(100, 100);
            //点击时执行响应函数 dynamic_Btn_Click
            btn.Click += dynamic_Btn_Click;

        }

        private void dynamic_Btn_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Button click");
        }
weixin_45798855
weixin_45798855 谢谢!也就是说我的这种思路是暂时无法实现的吧?
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问