Windows Formsアプリケーションで、whenアプリケーションの起動中と関数の呼び出し後の両方にフォーカスをコントロールに設定するコードを記述しますか?
たとえば、DropDownList、TextBox、および4つのボタンがあり、フォーカスをDropDownListに設定する場合、whereコードを記述しますか?
アプリケーションの起動時に特定のコントロールにフォーカスを設定するには、タブインデックスをそのDropDownに設定します(TabStopプロパティがTrueに設定されていることを前提に、最小値を設定します)。
ここで、ユーザーが操作(たとえば、クリックボタンイベント)を完了してから、DropDownを更新し、その後フォーカスを設定する場合は...として実行できます
MyDropDownList.Focus()
[〜#〜] question [〜#〜]
注意:問題は、morewhereではなく、how?
最も簡単な解決策は、TabIndexプロパティを正しく設定して、 'MyDropDownList'コントロールのインデックスが最も低くなるようにすることです。次のアプローチは、コンストラクターで行うことです。ただし、Select()を使用する必要があります。コントロールは後で表示されるため、Focus()メソッドはまだ機能しません。
Public Sub New()
InitializeComponent()
MyDropDownList.Select()
End Sub
Loadイベントでも機能します。 Focus()はShownイベントで動作を開始します。
親ウィンドウがアクティブ化されたとき(つまり、 "Activated"イベントを受け取ったとき)、フォーカスを配置する子コントロールにフォーカスを設定します。
private void Form_AddAppID_Activated(object sender, EventArgs e)
{
textID.Focus();
}
タブ順序は、フォーカスの開始位置とは関係がないことに注意してください。代わりに、タブオーダーを使用して、ユーザーがタブキーを押したときにフォーカスがどのように転送されるかを決定します。