2012-07-20 63 views
0

曾经作过下开始纸张++,并有,什么最有经验的C++程序员会召唤一个小问题...递增1的值,当按钮被点击C++

我使用Visual Studio 2008和编码在Visual C++与.NET。我试图编写最小的应用程序,每次单击一个按钮时都会在文本框中添加一行新行。添加新行很简单,但我想要为每行添加递增的整数,例如,如果我第一次单击按钮,“这是行1”被添加到文本框中,然后第二次单击“这是第2行“被添加到文本框中。我对我的编程有些生疏,无法想到一个能够实现这一点的循环结构。

这里是下面的按钮的处理程序的代码(有一些伪代码):

private: System::Void addLine_Click(System::Object^ sender, System::EventArgs^ e) { 

    int i = 0; 
    if(button is clicked){ 
     listBox->Items->Add("This is line " + i); 
     i++; 
    } 

} 

Should output something like: 

This is line 1 
This is line 2 
This is line 3 
This is line 4 
This is line 5 
      . 
      . 
      . 
This is line i 

我的按钮的名称是“addLine”和列表框中我想这些行出现在是名称为“listBox”。

在此先感谢您帮助C++ noob :)。

回答

1

i是一个局部变量,所以只要函数退出,它就会失去它的作用域。要么你需要声明我为static或将其作为类变量。

private: System::Void addLine_Click(System::Object^ sender, System::EventArgs^ e) { 

    static int i = 0; 
    if(button is clicked){ 
     listBox->Items->Add("This is line " + i); 
     i++; 
    } 

} 
+0

如果你想在UI的不同部分访问它,那么成员是更好的选择。 – 2012-07-20 06:30:26

+0

@TobiasLangner:是的,你是对的,但看到我觉得静态的问题会更合适 – Jeeva 2012-07-20 06:33:09

+0

我应该看看我的旧Java代码,我经常把变量声明为static。 – Rob 2012-07-20 06:39:48

0

我需要成为该类的成员 - 否则增量不会在函数的调用中生存。