0
    public void AutoBillNo()
    {
        int billno = 0;
        billno++;
        txtBillNo.Text = Convert.ToString(Convert.ToInt64(txtBillNo.Text) + 1);
    }


    private void Bill_Load(object sender, EventArgs e)
    {            
       AutoBillNo();
    }

正常に動作しますが、再実行後、winform テキストボックスに
1 が表示されます。テキストボックスに増加値が表示されません。何をしたらいいでしょう?

4

3 に答える 3

1

これは、このコードの変数 billno がテキスト ボックスに割り当てられていないためです。

同じものを再実行すると、txtBillNo.Text は再びゼロに初期化されます。

int billno = 0;
billno++;
txtBillNo.Text = Convert.ToString(Convert.ToInt64(txtBillNo.Text) + 1);`

むしろこうあるべき

 static int billno = 0;
 billno++;
 txtBillNo.Text = Convert.ToString(bilno);
于 2013-03-28T05:54:17.767 に答える
1

billno をグローバル変数にします (
メソッドから int billno = 0; を移動します)。これで、実行ごとに作成できます。

于 2013-03-28T05:49:33.587 に答える
1

あなたは決してビルノを使っていません。常にテキストボックスから値を取得しています。

私は次のことをします:

private static int billno = 1;
public void AutoBillNo()
{
     txtBillNo.Text = billno.ToString();
     ++billno;
}

ただし、プログラムを再起動すると、billno が再び 1 になることに注意してください。billno を保持する必要がある場合は、どこかに保存する必要があります。

于 2013-03-28T05:57:48.893 に答える