2015-05-27 3 views
-1

У меня есть форма для Windows, которая использует DevExpress (хотя я не уверен, что это часть проблемы или нет), которая используется для генерации электронной почты в csharp. Когда содержимое было введено в элемент управления (например, выбран адрес электронной почты из поиска, набрал содержимое в поле сообщения), я больше не могу установить курсор, щелкнув поле.Невозможно нажать на элементы управления формы

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

В форме есть несколько различных элементов управления, включая DevExpress LookupEdit и поле memo, но для возникшей проблемы тип управления не имеет большого значения - добавление различных элементов управления имеет ту же проблему.

Я не могу найти какие-либо настройки или конфигурации, которые, как я думаю, могут вызвать эту проблему, - кто-нибудь еще столкнулся с чем-либо подобным и может пролить свет на устранение проблемы?

Спасибо!

Jon

+0

Если я правильно помню, TextEdit, по крайней мере, обладает свойством типа «AutoSelect» или что-то, что по умолчанию соответствует true. – DrewJordan

+0

Если бы это был один элемент управления, это объясняло бы это - но это все, включая новые элементы управления - как DevExpress, так и не-DevExpress! Кажется, это не что-то, что не характерно для элементов управления. Я не могу найти какое-либо свойство даже удаленно, как «AutoSelect»! – Jon

+0

«Двойное нажатие делает выбор разделов текста, а оттуда курсор может отображаться и перемещаться с помощью клавиш со стрелками« ... это похоже на поведение элемента управления, которое было сделано только для чтения ... вы уверены, что это не тот случай? Может быть, в каком-то случае это место? – DrewJordan

ответ

0

Найденный ответ - это была та же проблема, как здесь встречаются:

Windows Forms: Unable to Click to Focus a MaskedTextBox in a Non TopLevel Form

Форма была быть открыта как верхнего уровня = ложь с родителем, но как диалог так WASN 't активируется - поэтому к нему можно получить доступ, но не обрабатывать некоторые события Windows, такие как щелчок мышью.

Странно, но удаление заголовка (formborderstyle = none) устраняет проблему!

Окончательное решение, похоже, связано с тем, как родительский элемент установлен в дочерней форме. В моем случае нам нужна была форма, которая должна быть ограничена в пределах родителя и иметь возможность передвигаться, поэтому безграничность не решила проблему. Что было сделано: -

// Declaration 
[DllImport("user32.dll", SetLastError = true)] 
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); 

// Displaying child form 
SetParent(modalForm.Handle, this.Handle); 
modalForm.Show(); 
Смежные вопросы