簡體   English   中英

拒絕在tab控件中切換到Tabpage

[英]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並具有一個變量,該變量指示是否允許更改它們,如果不允許,則僅更改回原始選項卡。

您可以使用TabControlSelecting事件。 它的類型為: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM