как отменить редактирование метки с помощью управляющей клавиши и вернуть метку в прежнее состояние - PullRequest
0 голосов
/ 29 мая 2011

В элементах управления Windows Form, таких как просмотр списка и древовидная структура, когда кто-то редактирует метку элемента, а затем нажимает клавишу «Выход», конец издания, но узел остается с тем, что я пишу в нем. В обмен на это я хочу, чтобы при нажатии клавиши Escape метка возвращалась к тому, что было. Я знаю, что должен принять метку перед тем, как метка отредактируется точно в событии «BeforeLabelEdit». В обработчике события «KeyPress» я не знаю, как остановить выпуск метки. Как я могу это сделать?

Обновление

Я нашел метод, который, как мне показалось, не существует, но теперь проблема в другом. Нажатие клавиши Escape невозможно отменить в середине действия надписи на издании.

private void ObjectWithItems_KeyDown(object sender, KeyEventArgs e)
{
        if (e.KeyCode == Keys.Escape)
        {
            if (treeViewDocXml.SelectedNode != null)
            {
                treeViewDocXml.SelectedNode.EndEdit(true);
            }
        }
}

1 Ответ

1 голос
/ 29 мая 2011

хорошо, я не уверен, о чем вы говорите, но вот пример того, как отменить редактирование текстового поля и задать текст перед началом редактирования:

 string textBefore;
 private void textBox1_Enter(object sender, EventArgs e)
 {
     textBefore = textBox1.Text;
 }

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
 {
     if(e.KeyChar == (char)Keys.Escape)
         textBox1.Text = textBefore;
 }

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...