修改随机按钮位置

时间:2016-03-13 23:06:13

标签: c# button random location

我试图在鼠标悬停时随机更改按钮的位置。为此,我使用以下源代码:

    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 我没有真正理解我做错了什么,有人有想法并且可以解释我做错了什么?

1 个答案:

答案 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());
}