如何检索在C#windows窗体中单击按钮后分配的当前值

时间:2015-10-12 13:57:34

标签: c# .net winforms

在ASP.NET中,我可以使用会话,但是对于Windows窗体,如何获取可以添加的当前值+ 1?

点击btnPrintToken后会覆盖,重新运行代码,我希望它保留最后输入的值(LastTokenNumberIssued),并让它添加+ 1等等,这样它就会更新队列。

private void btnPrintToken_Click(object sender, EventArgs e)
{
    Queue<int> queueTokens = new Queue<int>();

    lblStatus.Text = "There are " + queueTokens.Count.ToString() +
        " customers before you in the queue";

    int LastTokenNumberIssued = // Not sure how to retrieve current value what it was after nextTokenNumberTobeIssued.
    int nextTokenNumberTobeIssued = LastTokenNumberIssued + 1;
    LastTokenNumberIssued = nextTokenNumberTobeIssued;

    queueTokens.Enqueue(nextTokenNumberTobeIssued);
    AddTokensToListBox(queueTokens);
}

private void AddTokensToListBox(Queue<int> queueTokens)
{
    listTokens.Items.Clear();
    foreach (int token in queueTokens)
    {
        listTokens.Items.Add(token.ToString());
    }
}

3 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是在nextTokenNumberTobeIssued方法之前定义这些变量LastTokenNumberIssuedbtnPrintToken_Click,如下所示:

int LastTokenNumberIssued = 0; //give it a default value here.
int nextTokenNumberTobeIssued = 0; //give it a default value here.

private void btnPrintToken_Click(object sender, EventArgs e)
{
    ....
    nextTokenNumberTobeIssued = LastTokenNumberIssued + 1;
    LastTokenNumberIssued = nextTokenNumberTobeIssued;
    ...
}

这样,每次用户点击按钮PrintToken时,您都会LastTokenNumberIssued保留上一次点击。

答案 1 :(得分:0)

 int LastTokenNumberIssued = 0; //here will be the start value
 private void btnPrintToken_Click(object sender, EventArgs e)
 {
    Queue<int> queueTokens = new Queue<int>();

    lblStatus.Text = "There are " + queueTokens.Count.ToString() +
        " customers before you in the queue";

    int nextTokenNumberTobeIssued = LastTokenNumberIssued + 1;
    LastTokenNumberIssued = nextTokenNumberTobeIssued;

    queueTokens.Enqueue(nextTokenNumberTobeIssued);
    AddTokensToListBox(queueTokens);
}

private void AddTokensToListBox(Queue<int> queueTokens)
{
    listTokens.Items.Clear();
    foreach (int token in queueTokens)
    {
        listTokens.Items.Add(token.ToString());
    }
}

答案 2 :(得分:0)

在方法之外创建LastTokenNumberIssued:

public YourWindow 
{
   int LastTokenNumberIssued;

   private void btnPrintToken_Click(object sender, EventArgs e)
   {
      int nextTokenNumberIssued;

      LastTokenNumberIssued = LastTokenNumberIssued++;
      nextTokenNumberTobeIssued = LastTokenNumberIssued;
   }
}

如果在方法内创建LastTokenNumberIssued,则每次单击按钮时都会覆盖它,因为当方法返回时它的值会丢失。

检查this以获取有关方法范围的更多信息。