我正在尝试制作一个小程序,该程序将从富文本框中选择随机行并将其打印在标签上。
我还尝试制作一个计时器,在标签停止之前在标签上显示随机行。
但是当我运行该程序时,它会给我此错误消息:
随机最小值"最小值"不能大于"最大值"
这是我的代码:
public partial class Form1 : Form
{
private int ran;
private int ranP;
private int max;
Random rnd = new Random();
public Form1()
{
InitializeComponent();
}
private void button1_Click_1(object sender, EventArgs e)
{
int max = richTextBox1.Lines.Count();
int ranP = rnd.Next(1, max);
int ran = 0;
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
label2.Text = "The Winner is: " + richTextBox1.Lines[ranP];
ran = rnd.Next(1, 11);
ranP = rnd.Next(1, max);
if(ran == 11){
timer1.Enabled = false;
}
}
}
我的计时器中的这一行出现错误:
ranP = rnd。下一个(1,最大);
有谁知道为什么会这样?
在button1_Click_1
中声明一个局部变量max
该变量this.max
隐藏实例变量。当您在 timer1_Tick
方法中使用 max
时,它指的是从未赋值的实例变量。
将button1_Click_1
中的分配更改为
max = richTextBox1.Lines.Count();
应该有帮助。