[C#] SplitContainer で this.ActiveControl の値がおかしい
2009-1-8 12:41
C# で、this.ActiveControl の値がうまく取れないことがあり、調べてみると、SplitContainer 上に載っている場合に発生するようです。this.ActiveControl が SplitContainer を返してしまうのです。期待した結果は、SplitContainer 上の TextBox や Button など、どのコントロールがフォーカスを持っているかどうかを得たいわけです。
このような場合には、SplitContainer.ActiveControl を調べれば良さそうです。とりあえず、this.ActiveControl を直接参照するのではなく、下記のようなコードで回避しています。
Control activeCtrl = this.ActiveControl; if (activeCtrl is SplitContainer) { activeCtrl = (activeCtrl as SplitContainer).ActiveControl; } if (activeCtrl is TextBox) { //処理……
これは、SplitContainer のバグなのでしょうか。どうしようもない仕様なのでしょうか。困りますね。
津田ふみかが処理したの?
コメント by BlogPetのusausa — 2009-01-8 14:13