Вопрос по – Как создать winform с кнопками, которые никогда не привлекут фокус клавиатуры

3

У меня есть несколько текстовых полей на моей winform. У меня тоже есть несколько кнопок. Теперь, когда я набираю одно из таких текстовых полей и нажимаю кнопку, фокус ввода теряется из текстового поля, и кнопка получает фокус ввода клавиатуры. То есть курсор теряется из текстового поля в тот момент, когда мы нажимаем кнопку. Я не хочу такого поведения. Я хочу, чтобы мое текстовое поле удерживало курсор внутри, даже когда я нажимаю кнопку. Реальная ситуация в том, что у меня есть текстовое поле и цифровые кнопки, которые можно использовать только с сенсорного экрана.

Ваш Ответ

4   ответа
4

some other control, Выберите любой элемент управления, который, по вашему мнению, будет иметь смысл, чтобы получить фокус после нажатия кнопки. Например, установите фокус на TextBox, используя такой код:

textBox1.Focus();

Это не позволит вашей кнопке получить фокус при нажатии кнопки.

Кроме того, установите свои кнопкиTabStop свойство ложно.

Другие ответы, предлагающие вам установитьCanFocus свойство false не будет работать, потому что это свойство доступно только для чтения кнопок.

Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededfalseError: User Rate Limit Exceededunusable by keyboard-only usersError: User Rate Limit Exceededaccessibility standardsError: User Rate Limit ExceedednotError: User Rate Limit Exceeded
Error: User Rate Limit ExceededbuttonError: User Rate Limit Exceededsome other controlError: User Rate Limit Exceededsome text boxError: User Rate Limit ExceededafterError: User Rate Limit Exceededfirst text boxError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
9

который наследует от стандартного, но отключаетSelectable стиль:

public class ButtonEx : Button {
  public ButtonEx() {
    this.SetStyle(ControlStyles.Selectable, false);
  }
}
0

жатия кнопок, например:

private void Button_Click(...)
{
    FocusTextBox();
    // Do things...
}

private void FocusTextBox()
{
    textBox.Focus();
}
Error: User Rate Limit Exceeded
0

Button класс сFocusable свойство, наборFocusable вfalse

public class ButtonEx : Button
{
    [DefaultValue(true)]
    public bool Focusable
    {
        get { return GetStyle(ControlStyles.Selectable); }
        set { SetStyle(ControlStyles.Selectable, value); }
    }
}

Похожие вопросы