WinForms TabControlの選択解除イベントでタブ変更を処理しています。しかし、場合によっては、切り替える前にクリックしたタブを削除しています。それはしようとしているのでTabControlの選択イベントをキャンセルするには
シナリオは
現在、私はタブ2 ]タブをクリックし、タブ1 にいる私は、タブ1とタブ2 を持っている1選択解除イベントは クラッシュのOnPaintでタブコレクションからタブ2を削除しますもう存在しないタブに移動します。 (ArgumentOutOfRangeException)。それは選択イベントに当たる前にクラッシュします。
タブが選択されていない場合、キャンセルする必要があるため、選択解除時にタブカウントが変更されたかどうかはわかりません。
ご協力いただければ幸いです。
private void TabControl_Deselecting(object sender, TabControlCancelEventArgs) {
DoSomeWork();
}
クリックしたタブをDoSomeWorkが削除したとします。私が行っていたタブを削除したかどうかを知るにはどうすればいいですか?私の心に来る可能性のある解決策の
質問をもう少し明確にして、希望の結果がどのようなものであるか教えてください。ここであなたが何を望んでいるのか理解できない。 – ImGreg
ユーザーインターフェイスを再考する必要があります。あまりにも混乱して使いにくいと思います。 – BoltBait
タブの削除は、3つまたは4つの関数の深さです。ビジネスオブジェクトへのコントロールをバインドして、すべてのロジックをビジネスオブジェクトに入れるのですか?このGUIの機能は、直感的ではありません。 –