私はc#を使用しています。
CausesValidation プロパティがコンテナーから子コントロールに伝達されないのはなぜですか?
TabControl があり、すべてのタブでユーザー入力の検証を実行する必要があります。ただし、各タブは独立しています。TableLayoutPanel のようなコンテナーがあり、CausesValidation を false に設定すると、子コンポーネントは引き続き検証を実行することがわかりました。
したがって、このコードは機能しません。
Foreach(Control c in Container.Controls)
{
c.CausesValidation = False;
}
DEBUG 出力を実行すると、検出された唯一のコントロールが TableLayoutPanel または検出されて False に設定される GroupBox のようなその他のコンテナーであることがわかります。しかし、コンテナはその値を子レベルに伝播していません。多くの人が、どうすれば問題を解決できるか尋ねました。多くのメソッドを見つけましたが、検証を実行する TabControl のどのタブを選択できるようにする静的クラスを作成しました。 10層の深さ。そのライブラリが必要な場合は、それを求めてください!
私の本当の質問は、コンテナーがそのプロパティをその子コントロールに伝達し、その子コントロールを子コントロールに伝達するべきではないということです!
ゼロから機能するはずの何かに非常に特化した非常にクレイジーなコードを作成することから、多くの作業を節約できますか? なぜこれが暗示されていないのですか?