私のwinformにはいくつかのテキストボックスがあります。ボタンもいくつか付いています。そのようなテキストボックスに入力してボタンをクリックすると、テキストボックスから入力フォーカスが失われ、ボタンが入力キーボードフォーカスを取得します。つまり、ボタンをクリックした瞬間にカーソルがテキストボックスから失われます。私はこの振る舞いを望んでいません。ボタンをクリックしても、テキストボックスにカーソルを保持したい。実際の状況は、テキストボックスと数字ボタンをタッチスクリーンからのみ使用することです。
質問する
1886 次
4 に答える
10
Selectable
標準のものから継承するが、スタイルをオフにする独自のボタン コントロールを作成してみてください。
public class ButtonEx : Button {
public ButtonEx() {
this.SetStyle(ControlStyles.Selectable, false);
}
}
于 2012-04-09T19:08:38.283 に答える
4
ボタンクリックイベントハンドラーで、フォーカスを他のコントロールに明示的に設定します。ボタンが押された後にフォーカスを取得するのが賢明であると思われるコントロールを選択します。たとえば、次のようなコードを使用して、フォーカスをTextBoxに設定します。
textBox1.Focus();
これにより、ボタンがクリックされたときにボタンがフォーカスを取得できなくなります。
さらに、ボタンのTabStop
プロパティをfalseに設定します。
プロパティをfalseに設定することを提案する他の回答CanFocus
は、そのプロパティがボタンに対して読み取り専用であるため、機能しません。
于 2012-04-09T18:54:36.453 に答える
0
プロパティを使用してカスタムButton
クラスを作成しFocusable
、次のように設定Focusable
します。false
public class ButtonEx : Button
{
[DefaultValue(true)]
public bool Focusable
{
get { return GetStyle(ControlStyles.Selectable); }
set { SetStyle(ControlStyles.Selectable, value); }
}
}
于 2014-08-07T08:47:14.870 に答える
0
次のように、ボタン クリック イベント ハンドラのテキスト ボックスにフォーカスを設定できます。
private void Button_Click(...)
{
FocusTextBox();
// Do things...
}
private void FocusTextBox()
{
textBox.Focus();
}
于 2012-04-09T18:41:02.700 に答える