- - PR -
[.NET2005 C#]コントロールの動的追加・削除の方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-03-16 10:24
いつもお世話になっております。
TabControlを作成し、TabPageを動的に追加しています。 特定のTabPageのみを削除したいのですが、どうすればよいでしょうか? ----- for (int i = 0; i < dtcnt; i++) { TabPage tab = new TabPage(); Memo.Controls.Add(tab); tab.Text = fd[i].user; Tab.Name = "Tab" + j; j++; } ----- this.Controls.Remove(??????); を使えばいいと思ったのですが、??????に入れる名前がわかりません。。 this.Controls.Remove(Tab1); "Tab1は現在のコンテキスト内に存在しません。"という エラーが出て、コンパイルが通りません。 よろしくお願いします。 [ メッセージ編集済み 編集者: ふにゅ 編集日時 2007-03-16 10:27 ] | ||||
|
投稿日時: 2007-03-16 10:51
MemoがTabControlですね?
追加する時は Memo.Controls.Add(tab); じゃなくて、 Memo.TabPages.Add(tab); じゃないですか。 削除する時の Memo.TabPages.Remove(??????); の??????はTabPageへの参照を渡します。 例えば、追加のfor文の中では Memo.TabPages.Remove(tab); などとすれば削除できるはずです。 インデックス(何番目のタブか)が分かっているなら RemoveAt()というメソッドも使えます。 詳しくはここを見てください。 http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.tabcontrol_members(VS.80).aspx | ||||
|
投稿日時: 2007-03-16 10:58
Removeメソッドの引数は削除したコントロールのオブジェクト自身です。 文字列ではありません。例えば、選択されているタブを削除したい場合は、 TabControl.SelectedTab プロパティで取得したTabPageを渡してやります。 TabPageのNameプロパティの値を元に削除するのであれば、 まずはControlsプロパティのFindメソッドで該当オブジェクトを探してやり、 見つけたオブジェクトを使ってRemoveできると思います。 | ||||
|
投稿日時: 2007-03-16 13:46
>一郎さん
RemoveAt() おお、まさにこれがあれば実現できます! ありがとうございます! >よねKENさん すいません、勘違いしていました。 ありがとうございます! 丁寧なご説明ありがとうございました ![]() |
1