2011-11-30 47 views
0

我想知道是否可以有不同的標籤頁共享的固定數量的按鈕。但是我不知道如何實現這一點。你們有什麼想法嗎?標籤控制共享相同的按鈕Winform

下面是我的gui的截圖,這樣你們所有人都可以更清楚地瞭解我的意思。

1

我想要的客戶,預訂,列表和入住/退房將分享按鈕搜索,編輯,刪除和刷新。

可能嗎?或者我應該爲每個標籤頁創建差異按鈕?

是正確的,如果我做的:

private void buttonSearch_Click(object sender, EventArgs e) 
{ 
    if(tabpage.SelectedIndex == 1){ then perform action..} 
    if(tabpage.SelectedIndex == 2) {then perform action...} 
} 
+0

謝謝您的所有建議!我會真的把它放在我的腦海:)) –

回答

1

您可以將按鈕放在用戶控件中,向用戶控件添加一些事件(例如,SearchClicked,EditClicked等)。將用戶控件放在tabcontrol之外。

然後,當你改變標籤(TabIndexChanged),從以前的標籤移除事件處理程序,並添加事件處理程序的新標籤:

private void tabControl_TabIndexChanged(object sender, EventArgs e) 
    { 
     UserControl1.EditClicked -= OldEventHandler; 
     UserControl1.EditClicked += NewEventHandler; 
    } 
0

是的,你可以在運行時更改按鈕的.Parent財產 - 但它不會是最好只移動的按鈕的標籤控制?

0

我覺得你應該爲每個標籤頁面都可以創建不同的按鈕一個在不同的實體上運行。如果只有一組按鈕,那麼你將不得不首先檢查哪個標籤頁被選中,然後執行操作。所以你會有一個很大的方法來做很多事情。

此外,還會有額外的UI代碼,您需要編寫這些代碼才能在選擇標籤頁時移動按鈕。

使用不同的按鈕,您將擁有高度凝聚力和鬆散耦合的代碼。更好的設計。更易於維護和管理。代碼較少。