c#一个解决方案中多个形式的随机数生成器

本文关键字:随机数生成器 解决方案 一个 | 更新日期: 2023-09-27 18:25:59

我对编程很陌生,我正在Visual Studio中为学校做一个项目,但我有点停滞不前。我的解决方案中有多个表单。我的一个表单是发票,当点击上一个表单上的结账按钮时,我正试图创建一个发票编号。我在textBox字段中有以下代码,我想显示我的号码,但该号码没有显示在textBox中。请帮忙!!

    private void txtBoxInvoiceNo_TextChanged(object sender, EventArgs e)
    {
        Random rndNo = new Random();
        int invoiceNo = rndNo.Next(1, 500);
        txtInvoiceNo.Text = invoiceNo.ToString();
    }

c#一个解决方案中多个形式的随机数生成器

可能需要在这里看到更多的代码,但从您所显示的内容来看,这表明您正在生成txtBoxInvoiceNo的textChanged事件的发票编号。当该框中的文本发生更改时,将触发此事件。不在创建表单时。

我的建议是在窗体的构造中调用一个函数。您编写的代码应该可以工作,只需要在正确的位置调用它。

我假设你在写winforms,但类似于:

public MyForm()
{
    InitializeComponent();
    GenerateInvoiceNumber();
}
private void GenerateInvoiceNumber()
{
    Random rndNo = new Random();
    int invoiceNo = rndNo.Next(1, 500);
    txtInvoiceNo.Text = invoiceNo.ToString();
}

您可以稍后将其重构为静态或扩展方法,以便它可以由多个窗体使用,但调用应该在构造函数中进行,而不是在文本框更改事件中进行。

如果你想在多个表单上使用一些东西,最好添加一个Class并编写一个返回整数的方法。参考以下样品

Public class GenerateNumber
{
    public static int GetRandomNo()
    {
        Random rndNo = new Random();
        int invoiceNo = rndNo.Next(1, 500);
        return invoiceNo;
    }
}

然后你可以制作类的对象,并在所需的表单上调用这个函数

GenerateNumber randomNo = new GenerateNo();
txtInvoiceNo.Text = randomNo.GetRandomNo().ToString()