2009-04-25 9 views
1

私は、それぞれの人が自分のタブを持つようにするプログラムを持っていますが、それぞれのタブは同じですが、必要ならばタブを削除したいと思います。実行時のC#でのタブページの追加と削除

private void addPerson(string name) 
{ 
    TabPage tmp = new TabPage(); 
    ListView tmpList = new ListView(); 
    Button tmpButton = new Button(); 
    this.SuspendLayout(); 
    this.tabFrame.SuspendLayout(); 
    tmp.SuspendLayout(); 
    tmpList.SuspendLayout(); 
    tmpButton.SuspendLayout(); 
    ... 
    //build the controll itself 
    tmp.Controls.Add(tmpButton); 
    tmp.Controls.Add(tmpList); 
    tmp.Location = new System.Drawing.Point(4, 22); 
    tmp.Name = name.Replace(' ', '_'); 
    tmp.Padding = new System.Windows.Forms.Padding(3); 
    tmp.Size = new System.Drawing.Size(284, 240); 
    tmp.TabIndex = 3; 
    tmp.Text = name; 
    tmp.UseVisualStyleBackColor = true; 
    //add it to frame 
    this.tabFrame.Controls.Add(tmp); 
    tmpButton.ResumeLayout(true); 
    tmpList.ResumeLayout(true); 
    tmp.ResumeLayout(true); 
    this.tabFrame.ResumeLayout(true); 
    this.ResumeLayout(true); 
{ 

名は「スコット・チェンバレンは、」私はスペースを削除し、使用には名前フィールドのためにアンダースコア形式になります。

private void removePerson(string name) 
{ 
    this.SuspendLayout(); 
    this.tabFrame.SuspendLayout(); 
    this.tabFrame.Controls.RemoveByKey(name.Replace(' ', '_')); 
    this.tabFrame.ResumeLayout(true); 
    this.ResumeLayout(true); 
} 

タブが私のプログラムから消えていません:私は罰金タブを追加することができ、彼らは私がコードを使用してタブを削除しようとすると、正しくただし、フォーマットさ現れます。タブを削除するには何が欠けていますか?

+0

removePersonコール中にコードをデバッグしましたか? tabFrameに含まれるコントロールとそのNameプロパティの内容を確認してください。 –

答えて

4

alt text http://www.codinghorror.com/blog/images/works-on-my-machine-starburst.png

特定NameとシンプルなTabPageの作成とControlsまたはTabPages作品にそれを追加し、そうControlsTabPages両方にRemoveByKeyでそれを削除しません。

後で名前を変更する可能性のあるコードはありますか?

+0

はい、私は名前に空のフィールドを渡していたことが判明、私は正しくコンボボックスからテキストを取得していませんでした。 –

1

Add()およびRemoveByKey()操作の両方に対してtabFrame.Controlsの代わりにtabFrame.TabPagesを使用します。

TabPagesはコントロールのより特定されたバージョンです。このような状況が発生した場合は、より特殊化されたオプションを使用する方がよいでしょう。

+0

TabPageCollectionは、TabPagesの追加のみを許可する点を除いて、ControlCollection以上の機能を備えていません。 – Samuel

関連する問題