Строка исчезает после нажатия на другое текстовое поле - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь сгенерировать случайное целое число (штрих-код) при нажатии на кнопку. Затем я проверяю две таблицы (акции, единицы), если новый штрих-код уже существует или нет. Если он уникален, новый штрих-код будет записан в текстовом поле.

Все работает, но когда я нажимаю на другой текстовый блок формы, штрих-код исчезает.

PS:Я определил newBarcode в глобальной области как Integer ..

private void btnBarkodOlustur_Click(object sender, EventArgs e)
{
    BarcodeGenerator();
    string _newBarcode = newBarcode.ToString();
    if (context.Stocks.Any(c => c.Barcode == _newBarcode) || context.Units.Any(c => c.Unit == _newBarcode))
    {
        BarcodeGenerator();
        return;
    }
    else
    {
        txtBarcode.Text = _newBarcode;
    }
}

private void BarcodeGenerator()
{
    Random rnd = new Random();
    newBarcode = rnd.Next(10000000, 99999999);
}

1 Ответ

0 голосов
/ 30 октября 2019

Я сделал некоторые изменения в вашем коде. Когда кнопка нажата, она сгенерирует штрих-код. Хотя штрих-код не является уникальным, он будет продолжать генерировать штрих-код, пока он не станет уникальным. Затем он назначит значение штрих-кода для свойства Text txtBarcode.

private Random rnd = new Random();

private void btnBarkodOlustur_Click(object sender, EventArgs e)
{   
    string _newBarcode = BarcodeGenerator();
    while (context.Stocks.Any(c => c.Barcode == _newBarcode) || context.Units.Any(c => c.Unit == _newBarcode))
    {
        _newBarcode = BarcodeGenerator();
    }

    txtBarcode.Text = _newBarcode;
}

private string BarcodeGenerator()
{
    return rnd.Next(10000000, 99999999);
}
...