Validating 等のフォーカスが変更されるイベントで フォーカス設定をしないこと

今までも掲示板とかで話題になってたりしてましたが、.NET 4 になって、MSDN にも注意として記載されるようになりました。

Control.Validating イベント (System.Windows.Forms) より引用

Enter、GotFocus、Leave、LostFocus、Validating、または Validated イベント ハンドラーの中からフォーカスを設定しないでください。フォーカスを設定すると、アプリケーションやオペレーティング システムが応答を停止することがあります。詳細については、MSDN ライブラリ (http://msdn.microsoft.com/ja-jp/library/default.aspx) にある「Keyboard Input Reference (キーボード入力リファレンス)」セクションの WM_KILLFOCUS、および「About Messages and Message Queues (メッセージおよびメッセージ キューについて)」トピックの「Message Deadlocks (メッセージ デッドロック)」セクションを参照してください。


公式に載るのは良い事ですね!