2012-03-08 18 views
0

メインコントロールのタブコントロールからユーザーコントロールも追加しました。私は自分自身の中からコレクションからタブを削除したいと思っています。たぶんコーナーに少しxを置いてください。私はそれをどうやってやると思いますか?現在のタブのタブページからタブを削除します

これは、TabPageコントロールに項目を追加する方法です。

DevExpress.XtraTab.XtraTabPage tabPage = new DevExpress.XtraTab.XtraTabPage() { Text = room.Name, Tag = roomView }; 

roomView.ParentTab = tabPage; 
roomView.Dock = DockStyle.Fill; 
roomView.Settings = Settings; 

tabPage.Controls.Add(roomView); 
tbRooms.TabPages.Add(tabPage); 

答えて

1

、そこに「×」ボタンを入れて、それにイベントを割り当て、このようなクリックイベントの呼び出し何かに:

tbRooms.TabPages.Remove(tbRooms.SelectedTab); 

そのような何かが動作するはずです。

1

私が通常これを行う方法は、現在選択されているタブを閉じるボタンを追加することです。コードを実行するためのボタンをクリックイベントを使用します。

this.tbRooms.TabPages.RemoveAt(this.tabcontroller.SelectedIndex); 

あなたが閉じた後に集中するためにどのタブを選択したい場合があり、この例では、コントローラ内の最後のタブを選択します:

this.tbRooms.SelectedIndex = this.tbRooms.TabCount-1; 

実際のタブコントローラーにXボタンを追加する方法はわかりませんが、おそらくかなり複雑です。

空想になりたい場合は、削除されたタブページのキューを作成するだけで、閉じたタブを復元するボタンを作成できます。ボタンのクリックを解除し、タブコントローラーに再追加します。制御

1

あなたのタブに名前を付ける場合は、キー(名前IE)でそれらを削除することができます代わりにタブページのdisposeメソッドを使用してください。これは、静的タブページと動的タブページで完璧に機能します。

1

で3番目のタブを削除する

myTabPage.name = "WhateverTab"; 

MyTabControl.TabPages.RemoveByKey("WhateverTab"); 

またはインデックス

MyTabControl.TabPages.RemoveAt(2); 

によって:

1

次のオプションは、特定のオプションのページやコントロールを削除するのではなく、必要なタブを非表示にするのが非常に簡単です。隠れてしまうと、選択できなくなるため、問題は解決されます。

this.viewRibbonPage1.Visible = false;

1

私は現時点で同じ問題を抱え、mouse_clickイベントを使用して解決しました。ユーザーがタブを右クリックすると、タブが削除されます。 これは私の参照ですChange SelectedTab of TabControl on MouseOver

private void tabControl1_MouseClick(object sender, MouseEventArgs e) 
    {    
     if (e.Button == System.Windows.Forms.MouseButtons.Right) 
     { 
      Rectangle mouseRect = new Rectangle(e.X, e.Y, 1, 1); 
      for (int i = 0; i < tabControl1.TabCount; i++) 
      { 
       if (tabControl1.GetTabRect(i).IntersectsWith(mouseRect)) 
       { 
        tabControl1.TabPages.RemoveAt(i); 
        break; 
       } 
      }  
     } 
    } 
関連する問題