[英]Deny Switching to Tabpage in a tabcontrol
我有一個帶有選項卡控件的form(C#),它具有大約五個選項卡頁。
每個選項卡都有幾個文本框。
1)如果用戶在選項卡A中,並且編輯某些字段,我需要驗證所發現的文本(如果發現無效),那么我不應該允許任何選項卡切換嗎? 那可能嗎?
2)另一種情況可能是...用戶編輯一些值並單擊另一個選項卡,這樣做時,我需要檢查為選項卡A設置的值是否正確? 我可以這樣做嗎?
我是C#的新手,所以這些問題聽起來很基礎,對您的幫助將不勝感激。
我也想知道選項卡頁面的這些事件是什么
離開,驗證或確認?
我遇到了類似的問題,但值得慶幸的是,我遇到了這個MSDN頁面。 只需設置一個標簽選擇事件,然后添加您的邏輯以在其中取消/繼續。
http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.selecting.aspx
您可以禁用標簽頁。 不是最好/最簡單的方法,但是正在起作用。 這是操作方法: http : //social.msdn.microsoft.com/forums/en-US/winforms/thread/985b41c3-a1de-4744-8875-63262d4c2718/
在窗體設計器中,您可以添加所需的任何選項卡並限制用戶。
if(your_condition)
this.tab1.Controls.Add(this.tabPage2);
您可以連接到TabControl上的TabIndexChanged並具有一個變量,該變量指示是否允許更改它們,如果不允許,則僅更改回原始選項卡。
您可以使用TabControl
的Selecting
事件。 它的類型為: TabControlCancelEventHandler
,並且具有類型為TabControlCancelEventArgs
的參數,其屬性為Cancel
。
private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
if (e.TabPageIndex > 0 /* && some condition still not reached */)
{
e.Cancel = true;
}
//Avoiding a tabchange from Index Zero if some condition is not accomplished yet
//e.TabPageIndex: is the new TabIndex
//e.Cancel == true: makes the TabControl stay in the previous tab index
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.