C#winform中动态添加button并绑定事件

最近做的项目中用到的,新手很多不懂的地方,一点一点学习弄出来的,记录一下
private void treeView_Apps_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (MessageBox.Show("确定要安装此APP吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
            {
                //MessageBox.Show("1234");
                if (e.Node.Tag is App)
                {
                    treeView1.SelectedNode = e.Node;
                    App app = e.Node.Tag as App;
                    Button AppButton = new Button();
                    this.flowLayoutPanel1.Controls.Add(AppButton);
                    AppButton.Text = app.AppName;
                    AppButton.Tag = app.AppAddress;
                    AppButton.MouseClick += new MouseEventHandler(button_MouseClick);
                    AppButton.Size = new System.Drawing.Size(66, 66);
                    AppButton.UseVisualStyleBackColor = true;
                }
            }
        }
        private void button_MouseClick(object sender , MouseEventArgs e)
        {
            Button button = (Button)sender;
            string path = button.Tag.ToString();
            System.Diagnostics.Process.Start(path); 
        }

 
  
首先是动态添加按钮,是在一个treeview点击事件中完成的,添加到winform上的flowlayoutpanel控件上。

App是自己写的一个类,跟按钮对应一些属性。

然后给按钮绑定下面的点击事件,Button button = (Button)sender是其中的关键,sender代表发生事件的对象,这样就可以通过这里的button来调用上面的AppButton的属性了

你可能感兴趣的:(C#成长之路)