c#我想给多个textbox同时赋一个随机值,可为什么运行后赋的值都是一样的?
答案:2 悬赏:70
解决时间 2021-02-07 19:23
- 提问者网友:乏味沐染
- 2021-02-07 00:56
c#我想给多个textbox同时赋一个随机值,可为什么运行后赋的值都是一样的?
最佳答案
- 二级知识专家网友:甜野猫
- 2021-02-07 02:13
因为Random获取的是一个伪随机数,你这样写,每次new 一个Random出来,在运行速度够快的情况下,使用的随机种子都是一样的,这样获取到的值就会一样,建议只new 一个Random出来,这样就不会出现这种情况了。
以上废话可以不看,将代码改成这样就行:
public void giveallthetextboxvalue()
{
Random re = new Random();//只创建一个Random
foreach (Control cl in this.Controls)
{
if (cl is TextBox)
{
cl.Text = re.Next(0, 9).ToString();
}
}
}
以上废话可以不看,将代码改成这样就行:
public void giveallthetextboxvalue()
{
Random re = new Random();//只创建一个Random
foreach (Control cl in this.Controls)
{
if (cl is TextBox)
{
cl.Text = re.Next(0, 9).ToString();
}
}
}
全部回答
- 1楼网友:不羁的心
- 2021-02-07 03:26
form1 fm=new form1(); 这句话是又创建了一个form1的对象,已经不是原来那个了,下面这样可以实现
在form2里面加上form1 form1=null;在form1里面的这一句form2.show();之前加上form2.form1=this;这句this.textbox1.text=fm.str;改成this.textbox1.text=form1.str就行了。
public partial class form1 : form
{
public str;
publicform1()
{
initializecomponent();
}
privatevoid button1_click(objectsender, eventargs e)
{
form2 form2=new form2();
str="v1001";
form2.form1=this;
form2.show();
}
}
public partial class form2 : form
{
form1 form1=null;
publicform2()
{
initializecomponent();
}
privatevoid form2_load(objectsender, eventargs e)
{
this.textbox1.text=form1.str;
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯