現在アクティブなコントロールを取得する、指定したコントロールをアクティブにする現在アクティブなコントロールを取得する現在アクティブな(選択されている、フォーカスのある)コントロールを取得するには、ContainerControl.ActiveControlプロパティを使用します。
[VB.NET]
Console.WriteLine("現在選択されているコントロールは、{0}です。", _
Me.ActiveControl.Name)
[C#]
Console.WriteLine("現在選択されているコントロールは、{0}です。",
this.ActiveControl.Name);
ただし、別のフォームのActiveControlプロパティを参照することはできません。この場合は、「別のフォームのデータを取得、設定する」で紹介した方法を使って取得します。 あるコントロールがアクティブであるかは、Control.Focusedプロパティで調べることができます。 [VB.NET] If TextBox1.Focused Then Console.WriteLine("TextBox1にフォーカスがあります。") Else Console.WriteLine("TextBox1にフォーカスがありません。") End If [C#] if (TextBox1.Focused) Console.WriteLine("TextBox1にフォーカスがあります。"); else Console.WriteLine("TextBox1にフォーカスがありません。"); 指定したコントロールをアクティブにする指定したコントロールをアクティブにする(選択する、フォーカスを移す)ための方法はいくつかあります。 最も基本的な方法は、Control.Selectメソッドを呼び出す方法です。例えば、TextBox1をアクティブにするには、次のようにします。
[VB.NET]
'TextBox1をアクティブにする
TextBox1.Select()
[C#]
//TextBox1をアクティブにする
TextBox1.Select();
補足:コントロールには、アクティブにすることのできないコントロールもあります。アクティブにできないコントロールは、Panel、GroupBox、PictureBox、ProgressBar、、Splitter、Label、リンクが存在しないLinkLabelです。あるコントロールがアクティブにできるかを調べるには、Control.CanSelectプロパティを使用します。 Control.Focusメソッドを使用しても同じことができますが、Focusメソッドは主にカスタムコントロールなどで使用されます。
[VB.NET]
'TextBox1をアクティブにする
TextBox1.Focus()
[C#]
//TextBox1をアクティブにする
TextBox1.Focus();
フォームなどのコンテナにあるコントロールを選択するには、ContainerControl.ActiveControlプロパティを使用する方法もあります。 例えば、フォームにあるTextBox1をフォームクラスからアクティブにするには、次のようにします。 [VB.NET] 'TextBox1をアクティブにする Me.ActiveControl = TextBox1 [C#] //TextBox1をアクティブにする this.ActiveControl = TextBox1; タブオーダーで次のコントロールをアクティブにするタブオーダーで次のコントロールをアクティブにするには、Control.SelectNextControlメソッドを使用します。 現在選択されているコントロールの次のタブオーダーのコントロールを選択するには、次のようにします。 [VB.NET] '次のコントロールを選択する Me.SelectNextControl(Me.ActiveControl, True, True, True, True) [C#] //次のコントロールを選択する this.SelectNextControl(this.ActiveControl, true, true, true, true); SelectNextControlメソッドの一番目のパラメータには、基準となるコントロールを指定します。2番目のパラメータには、タブオーダーが次のコントロールをアクティブにするか、前のコントロールをアクティブにするかを指定します。つまり、これをFalseにすると、Shiftキーを押しながらTabキーを押した時のようになります。3番目のパラメータにはTabStopがFalseのコントロールを無視するかを、4番目のパラメータには子コントロールの子コントロールも含めるかを、5番目のパラメータにはタブオーダーの最後のコントロールが選択されている時に最初に戻るかを指定します。詳しくは、「Control.SelectNextControl メソッド」をご覧ください。 Control.GetNextControlメソッドでタブオーダーが次のコントロールを取得して、Selectメソッドで選択するという方法もあります。ただしこの場合は、タブオーダーが最後のコントロールはGetNextControlメソッドでnullを返すことに注意してください。 [VB.NET] '次のコントロールを取得する Dim nextControl As Control = Me.GetNextControl(Me.ActiveControl, True) '次のコントロールを選択する If Not (nextControl Is Nothing) Then nextControl.Select() End If [C#] //次のコントロールを取得する Control nextControl = this.GetNextControl(this.ActiveControl, true); //次のコントロールを選択する if (nextControl != null) nextControl.Select();
|
|
Copyright 2002-2008 DOBON!. All rights reserved.
|