Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Выделение текста в TextEdit


Автор: lamber 20.11.2011, 22:47
Какой самый простой способ добавить функционал Cntrl-A к TextEdit, а то у меня не работает из "коробки" так сказать.

Автор: Fortnox 21.11.2011, 10:28
В обработчике события KeyDown текстового поля:
Код

if (e.Control && (e.KeyCode == Keys.A))
{
    this.SelectAll();
    e.SuppressKeyPress = true;
    e.Handled = true;
}
else
    base.OnKeyDown(e);

Автор: lamber 21.11.2011, 22:54
2Fortnox

Спасибки,только вот на this.SelectAll(); ругается видимо нужно подставлять переменную типа TextEdit жаль что универсальным обработчик этот не сделаешь, для всех текстовых полей содержащихся на форме

Автор: Fortnox 21.11.2011, 22:59
lamber, отчего же не сделаешь?! Наследуйте тип TextBox, переопределите в нем KeyDown и замените все нужные текстовые поля на ваш контрол.
Код

    public class MyTextBox : TextBox
    {
        protected override void OnKeyDown(KeyEventArgs e)
        {
            if (e.Control && (e.KeyCode == Keys.A))
            {
                this.SelectAll();
                e.SuppressKeyPress = true;
                e.Handled = true;
            }
            else
                base.OnKeyDown(e);
        }
    }

Автор: lamber 24.11.2011, 15:09
Что бы не плодить, тем. Как добавить этот контрол в Дизайнер или им теперь можно будет воспользоваться только создавая программным путем ?

Автор: Fortnox 24.11.2011, 15:43
Вы имеете ввиду в Toolbox? Просто выполните построение проекта и контрол автоматически появится в Toolbox'e.

Автор: lamber 24.11.2011, 18:29
2Fortnox
Спасибо не знал такой фичи, где можно узнать об этом подробнее ?

Автор: VirusUZ 11.2.2012, 13:56
textbox.SelectAll();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)