首页 新闻 会员 周边 捐助

关于winfrom groupBox内新建按钮问题

0
悬赏园豆:10 [已解决问题] 解决于 2019-01-30 09:09

代码如下:
foreach (var item in tag)
{
Button btn = new Button();
btn.Text = item.name;
btn.Name = item.id.ToString();
btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
btn.BackColor = System.Drawing.Color.DarkSlateGray;
btn.ForeColor = System.Drawing.Color.White;
btn.FlatAppearance.BorderSize = 0;
btn.Font = new System.Drawing.Font("宋体", 9F,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
//随机数
int x = RamdonX(btn);
//随机数
int y = RamdonY(btn);
btn.Location = new Point(x, y);
btn.Click += new System.EventHandler(this.tagBtn_Click);
groupBox2.Controls.Add(btn);
}
直接运行程序样式:

加断点调试运行样式:

我是动态的从数据库里添加按钮,每个按钮的位置我都给了随机数,但是运行窗体按钮重叠。但是我加断点调试按钮在不同位置,不重叠。请问我的代码有什么问题吗?

恶之必要的主页 恶之必要 | 初学一级 | 园豆:165
提问于:2019-01-24 10:13
< >
分享
最佳答案
0

你代码放在什么事件里的? 你可以放在 activated事件里试一下

收获园豆:10
jqw2009 | 老鸟四级 |园豆:2341 | 2019-01-24 12:52

我放在窗体Load事件里了

恶之必要 | 园豆:165 (初学一级) | 2019-01-24 13:57

窗体的activated事件我试过了,不行啊,按钮还是重叠的

恶之必要 | 园豆:165 (初学一级) | 2019-01-25 09:06

@恶之必要: 晚点我帮你调试看看

jqw2009 | 园豆:2341 (老鸟四级) | 2019-01-25 09:10

@jqw2009: 好的,谢谢

恶之必要 | 园豆:165 (初学一级) | 2019-01-25 09:35

@jqw2009: 您是不是忘记了,帮帮我啊

恶之必要 | 园豆:165 (初学一级) | 2019-01-29 15:25

@恶之必要: 稍等

jqw2009 | 园豆:2341 (老鸟四级) | 2019-01-29 15:49

@恶之必要: 我测试了一下,位置是没问题的,问题应该出现在你的随机数,你运行的时候将XY数值直接显示在界面上,这样你就可以看到是不是每次xy的数值都一样?
因为你的 RamdonX 函数不知道具体代码,没法测试你的随机数

jqw2009 | 园豆:2341 (老鸟四级) | 2019-01-29 15:59

@jqw2009:
这是我随机数的代码
private int RamdonX(Button btn)
{
Random rd = new Random();
//(生成1~10之间的随机数,不包括10)
return rd.Next(10, this.groupBox2.Size.Width - (btn.Size.Width + 10));
}
private int RamdonY(Button btn)
{
Random rd = new Random();
//(生成1~10之间的随机数,不包括10)
return rd.Next(18, this.groupBox2.Size.Height - (btn.Size.Height + 15));
}

恶之必要 | 园豆:165 (初学一级) | 2019-01-30 08:48

@恶之必要: Random rd = new Random(); 要改成全局变量,不要每次都new,因为随机函数并不是真的随机,也是有规律的
第二个方法就是 Random rd = new Random((int)System.DateTime.Now.Ticks); 随机函数加个种子,这样重复的概率就小了

jqw2009 | 园豆:2341 (老鸟四级) | 2019-01-30 09:05

@jqw2009: 可以了,谢谢你

恶之必要 | 园豆:165 (初学一级) | 2019-01-30 09:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册