TextBox автоматически заполняют и кнопки по умолчанию

Вы можете попробовать использовать класс Joiner вместо удаления последнего символа из вашего сгенерированного текста;

                List<String> textList = new ArrayList<>();
                textList.add("text1");
                textList.add("text2");
                textList.add("text3");

                Joiner joiner = Joiner.on(",").useForNull("null");
                String output = joiner.join(textList);

               //output : "text1,text2,text3"
5
задан Zhenya 1 July 2009 в 12:04
поделиться

4 ответа

Не назначайте свойства формы AcceptButton и CancelButton. Установите DialogResult в событии OnClick кнопок.

2
ответ дан 15 December 2019 в 01:09
поделиться

вместо кнопок «Принять» и «Отменить» вы можете использовать следующий подход:

  1. Установите для свойства KeyPreview значение true для формы.
  2. Обработайте ] KeyDown формы, в методе обработчика вы можете иметь что-то похожее на приведенный ниже переключатель кода

     (e.KeyCode)
    {
     case Keys.Enter:
     {
     если (! txtAuto.Focused)
     {
     Сохранить();
     }
     перерыв;
     }
     case Keys.Escape:
     {
     если (! txtAuto.Focused)
     {
     Близко();
     }
     перерыв;
     }
    }
    
0
ответ дан 15 December 2019 в 01:09
поделиться

Простой способ - удалить свойства AcceptButton и CancelButton , пока вы находитесь в текстовом поле автозаполнения:

    public Form1()
    {
        InitializeComponent();

        txtAuto.Enter +=txtAuto_Enter;
        txtAuto.Leave +=txtAuto_Leave;
    }

    private void txtAC_Enter(object sender, EventArgs e)
    {
        AcceptButton = null;
        CancelButton = null;
    }

    private void txtAC_Leave(object sender, EventArgs e)
    {
        AcceptButton = btnOk;
        CancelButton = btnCancel;
    }
2
ответ дан 15 December 2019 в 01:09
поделиться

Другой вариант - создать свой собственный класс TextBox, который выполняет проверку при нажатии Enture / Return:

public class MyTextBox : TextBox
{
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == Keys.Enter || keyData == Keys.Return)
        {
            // Perform validation here
            return true;
        }
        else
            return false;
    }
}
0
ответ дан 15 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

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