0

ユーザーが TabControl で選択したタブ ページを変更できないようにするにはどうすればよいですか? で述べたように私はやっています。

物事はうまくいっています。しかし、tabpage1 が現在選択されていて、ユーザーが tabpage1 自体をクリックすると、tabpage1 の検証イベントが発生します。その後、ユーザーが tabpage2 をクリックすると、tabpage1 の検証イベントは発生しません。

上記の場合、tabpage1 の検証イベントで行うe.Cancelと、tabpage1 が既に選択されている状態でユーザーが誤って tabpage1 をクリックすると、「データを保存するために現在のタブにとどまりますか、それともタブから移動しますか?」というメッセージがユーザーに表示されます。現在のタブ?". ユーザーがクリックStayしても何も変更しない場合。そして、tabpage2 を正しくクリックすると、tabpage1 の Validating イベントが発生しません。

ここにサンプル アプリケーションをアップロードしました。問題を正しく理解するために、実行して動作を確認できます

4

2 に答える 2

1

TabControl.Selecting Event代わりに使用してください。

次のように使用します。

tabControl1.Selecting += tabControl1_Selecting;

private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
    e.Cancel = !(can switch tab);
}
于 2010-04-28T11:58:59.000 に答える
1

これはバリデーションがどのように振る舞うべきかの一種であり、タブページとの幸運な一致ではありません。

Selecting/Selected イベントを使用して、さらにロジックを自分で作成することができます。または、タブページまたはそれらが個別に検証されるという考えのいずれかをあきらめます。

于 2010-04-28T11:56:56.180 に答える