2009-07-21 7 views
0

私はC#2005を使用してWindowsアプリケーションを作成しています。私は、MenustripとTabPageを削除する

TabControlを含むMDIForm(frmMainMenu)を持っています。私のChildFormはfrmPurchaseEntryです。ユーザーが特定のメニューオプションをクリックすると、新しいTabPageが作成され、

子フォームがTabPage内に表示されます。

私はMDIFormの(frmMainMenu)のMenuClickイベントに次のコードを使用しています:

frmPurchaseEntry PurchaseEntry = new frmPurchaseEntry(); 
PurchaseEntry.MdiParent = this; 
PurchaseEntry.TabCtrl = tabControl1; 
PurchaseEntry.TopLevel = false; 
PurchaseEntry.Visible = true; 
PurchaseEntry.FormBorderStyle = FormBorderStyle.None; 
PurchaseEntry.Dock = DockStyle.Fill; 

TabPage tpPurchaseEntry = new TabPage(); 
tpPurchaseEntry.Parent = tabControl1; 
tpPurchaseEntry.Text = PurchaseEntry.Text; 
tpPurchaseEntry.Controls.Add(PurchaseEntry); 

tpPurchaseEntry.Show(); 
PurchaseEntry.Select(); 

tabControl1.SelectedTab = tpPurchaseEntry ; 

すべてが、この点で最大OKです。しかし、ChildFormが閉じられたときにTabPageを削除することはできません。次のコマンドのみ

はChildFormを閉じますが、空のTabPageは残っています。

this.Close(); 

私はのTabPageを除去するための構文は

tabControl1.TabPages.Remove(tabControl1.SelectedTab); 

しかしChildFormからMDIFormののTabControlのにアクセスImはできません知っています。私はTabControlのPublicモディファイアを使用しようとしましたが、それでもChildFormから公開されていません。

特定のTabPageを(特定のタブテキストを使用して)ChildFormから削除して処理するにはどうすればよいですか?

ありがとうございます。あなたがC#2.0を使用している場合は

ラリット・クマールBarik

+0

あなたは本当ですかShowDialog()ではなくShow()が必要ですか? –

答えて

2

前/

tpPurchaseEntry.Show(); 

後(_s、_E)=> tabControl1.TabPages.Remove」置き換え

PurchaseEntry.Closed += (_s,_e)=>tabControl1.TabPages.Remove(tpPurchaseEntry); 

を追加(tpPurchaseEntry)」と

delegate(object _s, EventArgs _e) { tabControl1.TabPages.Remove(tpPurchaseEntry); } 
関連する問題