2012-04-21 33 views
0

私は、テキストボックスに第一の要素を表示する必要がある文字列配列文字列配列要素を文字列に変換するには?

public: array<String ^>^sss; 
public: 
    Form1(void) 
    { 
     InitializeComponent(); 
     // 
     //TODO: Add the constructor code here 
     // 
     array<String ^>^sss = gcnew array<String ^>(3); 
     sss[0]="asdasd"; 
     sss[1]="s115ss"; 
     sss[2]="s115ss"; 
    } 

を持っています。

私は、VC++はSystem.NullReferenceExceptionを与えた

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

      textBox2->Text = sss[0]; 
     } 

を使用。どうして?それを修正する方法は?

エラー:あなたもsssと呼ばれるフィールドを持っていない限り

An unhandled exception of type 'System.NullReferenceException' occurred in test000.exe Additional information: Object reference not set to an instance of an object.

+2

完全なスタックトレースを追加してください。あなたが提供した情報に基づいて、私はNullReferenceがオブジェクト 'textbox'ではない' s' –

+0

ではないと賭けています。次のコードは私のプログラムで動作します。textBox2-> Text = "11111"; – user765168

答えて

1

あなたのコードは、コンパイルされないはずです。その場合、コンストラクタ内のそのフィールドの値を設定する必要があります。同じ名前の関連性のないローカル変数ではなく、その値を設定します。

array<String ^>^sss; 

public: 
    Form1(void) 
    { 
     InitializeComponent(); 

     sss = gcnew array<String ^>(3); 
     sss[0]="asdasd"; 
     sss[1]="s115ss"; 
     sss[2]="s115ss"; 
    } 
+0

私は私のポストにそれを追加することを忘れて申し訳ありません。コード内にそのコードがありますが(私の投稿を編集したばかりです)、私のプログラムは動作しません。 – user765168

+0

私が言ったように、コンストラクタのいくつかのローカル変数ではなく、フィールドを設定する必要があります。配列を 'gnew'する行を私の答えの行に変更してください。 – svick

+0

あなたは正しいです。私が最初にあなたが意味するものをキャッチしなかったことは残念です。 – user765168

関連する問題