weixin_45798855 2020-04-13 12:18 采纳率: 0%
浏览 597

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

  • 写回答

2条回答 默认 最新

  • ArthurKe 2020-04-14 10:52
    关注

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

     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");
            }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办