タブコントロールに追加したタブが名前で参照できない
C#でタブコントロールにタブを追加するコードを書いて、タブの名前で参照しようとすると例外が起きるわけです。また、うまくいかない。
例外が起きたのは、以下のコード。
「Test1」というタブページを追加して「Test1」で参照して、ラベルを追加するという簡単なコードなのだが、3行目で例外が起きる。なぜ?デバッグすると、追加したはずのタブページが見つからずnullになっていた。
これでOK。
引数1個のときは、タイトルにすると同時に名前にも設定してくれればよいのにね。
例外が起きたのは、以下のコード。
this.tabControl1.TabPages.Add("Test1"); TabPage tb1 = this.tabControl1.TabPages["Test1"]; tb1.Controls.Add(new Label() { Text = "Test1" }); // 例外発生!
「Test1」というタブページを追加して「Test1」で参照して、ラベルを追加するという簡単なコードなのだが、3行目で例外が起きる。なぜ?デバッグすると、追加したはずのタブページが見つからずnullになっていた。
解決策
1行目のタブを追加するときに、引数を2つ指定する必要がある。引数が1個だけだと、タブのタイトルを指定するだけで名前が付かない。そのため、名前で参照するとnullが返ってくる。引数を2つ指定すると、最初の引数が名前、2番目の引数がタイトルになる。
this.tabControl1.TabPages.Add("Key2", "Test2"); TabPage tb2 = this.tabControl1.TabPages["Key2"]; tb2.Controls.Add(new Label() { Text = "Test2" });
これでOK。
引数1個のときは、タイトルにすると同時に名前にも設定してくれればよいのにね。
コメント
コメントを投稿