问一个WinForm上的算法,动态在Panel上生成指定数量的按钮

天马座的流星拳 2020-03-17 05:30:12
这里需要在Winform窗口中动态生成一定个数的按钮,初步确定在窗口上放一个Panel来规范按钮的区域,根据配置中的值生成指定数量、指定大小的按钮。
所有按钮将会统一调用同一个处理函数,根据按钮Name、Tag值,函数做出不同的响应,这个不难。
只是总感觉这样动态在指定区域生成按钮的代码应该有现成的,所在向坛友们求助。
...全文
240 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
对不起大家,点错了,本来想平均分配的,手滑就成这样了
threenewbee 2020-03-18
  • 打赏
  • 举报
回复
https://bbs.csdn.net/topics/395615469
  • 打赏
  • 举报
回复
好像没现成的东西,都是自己写的,或可写成一个函数供调用。
正怒月神 2020-03-18
  • 打赏
  • 举报
回复
至于根据name和tag不同处理, 你可以根据自定义事件的 sender来获取处理。
正怒月神 2020-03-18
  • 打赏
  • 举报
回复
那很简单。 for(int i=0;i<Count;i++) { button btn=new button(); btn.事件+=定义的事件 btn.text=.... btn.name=.... btn.left=50*i;//设置左坐标 btn.top=50*i;//设置顶坐标 panel.add(btn); }
Bridge_go 2020-03-18
  • 打赏
  • 举报
回复
FlowLayoutPanel自动摆放控件
lzhdim 2020-03-17
  • 打赏
  • 举报
回复
Panel panel_box = new Panel() { Size = size, BackColor = bcolor }; for (int i= drawers.Count-1; i>-1;i--) { Panel panel_control = new Panel() { Dock = DockStyle.Top, Name = "window_" + i, BackColor = Color.SteelBlue }; panel_box.Controls.Add(panel_control); if (i == 0) panel_control.Visible = true; else panel_control.Visible = false; panel_control.Controls.Add(drawers[i].control); Button button = new Button() { Dock = DockStyle.Top, Height = drawers[i].btn_height,Text = drawers[i].btn_text,Tag = i }; button.Click += Button_Click; panel_box.Contr
lzhdim 2020-03-17
  • 打赏
  • 举报
回复
直接New,然后设置这些按钮的名称事件等内容。。。 this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(198)))), ((int)(((byte)(223)))), ((int)(((byte)(255))))); this.label1.Location = new System.Drawing.Point(112, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(208, 25); this.label1.TabIndex = 5; this.label1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.label1_MouseDown);

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧