Скажем, мое приложение состоит из Rich Text Box и кнопки. Я хочу, чтобы кнопка включалась, когда пользователи нажимали клавишу в RTB, но не может быть любого из модификаторов.модификатор + другой символ, Win Forms
Я могу справиться с этим в некоторых KeyEvent, таких как PreviewKeyDown, но он не работает, когда я нажимаю модификатор + другой символ, например SHIFT + S, который действителен, потому что результатом является буква S. Есть ли способ отделите мое требование или я должен использовать какой-то другой подход? Я мог бы использовать TextChanged, но есть еще много действий, которые я уже написал, и я бы предпочел сделать это именно так.
Простое объяснение:
private void richTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (!e.Alt && !e.Control && !e.Shift)
{
this.button1.Enabled = true;
else
this.button1.Enabled = false;
}
}
Достаточно проверить, есть ли в вашем RichTextBox текст, а затем включить вашу кнопку. поэтому вы можете обрабатывать событие TextChanged и проверять свойство 'TextLength'. –
У моего richtextbox уже есть текст. Я имею в виду, это просто объяснение, мой случай сложнее, мне нужно знать, как его решить, скажем, richtextbox.text = «Что-то», и теперь, когда я нажимаю Shift, он отключен, но когда я нажимаю Shift + char он включен. –
@RezaAgheai Да, я знаю это, поскольку я написал в вопросе. Но в этом конкретном случае я не могу использовать TextChanged, это проблема. –