我试图在鼠标悬停时随机更改按钮的位置。为此,我使用以下源代码:
private int modifX()
{
int rdmx;
int x_max = this.Width;
Random rdm = new Random();
rdmx = rdm.Next(0, x_max);
return rdmx;
}
private int ModifY(){
// same with y_max = this.Height;
}
private void bt_win_MouseEnter(object sender, EventArgs e)
{
bt_win.Location = new Point(modifX(), modifY());
}
问题是我的按钮位置总是在that
之类的直线上我该如何解决?我试着用bt_win.Location.X = modifX();在mouseEnter事件上但似乎我无法处理Location.X或Location.Y 我没有真正理解我做错了什么,有人有想法并且可以解释我做错了什么?
答案 0 :(得分:0)
您需要使用Random类的相同实例。 当您紧密创建Random类的两个实例时,它们可以共享相同的种子。因此将生成相同的数字。
private Random _rdm = new Random();
private int modifX()
{
int x_max = this.Width;
int rdmx = _rdm.Next(0, x_max);
return rdmx;
}
private int ModifY(){
// same with y_max = this.Height;
}
private void bt_win_MouseEnter(object sender, EventArgs e)
{
bt_win.Location = new Point(modifX(), modifY());
}