0

いくつかの検証ロジックと TabControl があります。現在のタブにエラーが含まれている場合に、ユーザーがタブを切り替えないようにしたい。

同じことを尋ねている人もいれば、ここで見られるように良い答えをした人もいます。

TabControl- ユーザーが選択したタブを変更できないようにする: MessageBox が原因でバグが発生する

ただし、Fredrik Hedblad が言うように、選択がキャンセルされている間に MessageBox が表示されると、すべてが崩壊します。それは奇妙な行動を経験します。イベントが (明らかに) 発生しなくなり、ウィンドウを最小化して元に戻すと、対話せずに突然発生しました!!

誰かがこれに光を当てることができますか?どうもありがとう!!!

ここで、問題のある Visual Studio ソリューションをセットアップしました。MainWindow.cs にコードがあります。本当に簡単ですが、うまくいきません。(ダイアログが表示された後) いくつかのタブを 2 回クリックしてみると、ダイアログが再度表示されないことに気付くでしょうが、最小化して元に戻すと、ダイアログが自動的に表示され、タブが選択されます!

サンプル ソリューションを含む ZIP ファイル (Visual Studio 2012

4

2 に答える 2

1

検証ロジックで、他の TabItemsVisibilityプロパティをCollapsed
どちらかまたはIsEnabledfalse に設定します。

検証ロジックに一種のプロパティがあると思いますよIsDirtyね?その後、あなたはすべて明確です!

于 2013-10-02T21:36:26.147 に答える
0

動作するこのコードを使用してみてください:

bool isError=true;
private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
        {
            if (isError)
            {
                e.Cancel = true;
            }            
        }

isError は、タブ ページでエラーが発生したときに設定される bool 変数です。

于 2013-10-03T10:36:53.453 に答える