У меня есть C # .NET WinForm.В форме я разрешаю пользователю добавить элемент в ListView, дважды щелкнув в ListView.Это добавляет элемент управления TextBox в ListView и помещает курсор в TextBox, чтобы пользователь мог печатать.
Я обнаружил, что пользователь сделал с элементом двумя способами (например, нажатием Enter, Esc,Tab ...), но также когда они оставляют (TextBox.Leave) TextBox.
Проблема заключается в следующем наборе шагов:
- Пользователь запускает TextBox.Leave, проводя мышью внизза пределами TextBox.
- Я добавляю новый элемент в ListView.
- Я выбираю новый элемент в ListView.
- При наведении мыши появляется новый элемент, которыйЯ только что выбрал, теряет фокус и не выбирается.
Я хотел бы, чтобы TextBox.Leave запускался MouseUp, а не MouseDown.Как мне это сделать?
Редактировать: Коди предлагает использовать свойство ListView.LabelEdit.Вот мои результаты, пытаясь это сделать:
listView_DoubleClick(...) {
listView.LabelEdit = true;
if(double clicked on existing listViewItem) {
listViewItem.BeginEdit(); //this works as expected
} else {
var newItem = listView.Items.Add("");
newItem.BeginEdit(); //this doesn't work, see below
}
}
Вызов newItem.BeginEdit () работает только тогда, когда пользователь дважды щелкает, где новый элемент будет отображаться.Если дважды щелкнуть любую другую пустую область в списке, добавляется новый элемент, но он не входит в режим редактирования.Что здесь происходит?