.NET ошибка?SplitContainer Split Move выделяет весь текст содержащихся элементов управления - PullRequest
0 голосов
/ 26 ноября 2010

У меня есть несколько вложенных SplitContainers и происходит одно нежелательное поведение. Каждый раз, когда движется разделитель, элементы управления выделяют свой текст (текст выделяется), особенно ComboBoxes.

Я не знаю, почему это происходит. Проблема довольно легко воспроизвести. Вам просто нужно:

  1. Создать форму.
  2. A поместите в него разделенный контейнер.
  3. Добавьте ComboBox с некоторыми элементами.
  4. Прикрепите левую и правую стороны ComboBox.
  5. Компиляция
  6. Переместить разделитель

Вы увидите, что у ComboBox выделен текст.

Как я могу предотвратить это? Или хотя бы убрать выделение из комбинированных списков?

Большое спасибо за вашу помощь!

1 Ответ

3 голосов
/ 26 ноября 2010

Это давняя ошибка в родном элементе управления Windows со списком.Да, он выбирает текст, когда получает сообщение WM_SIZE.Это относится к DropDownStyle = DropDown.

Это возможный обходной путь:

using System;
using System.Windows.Forms;

class MyComboBox : ComboBox {
    protected override void OnResize(EventArgs e) {
        if (!this.Focused && this.DropDownStyle == ComboBoxStyle.DropDown) {
            this.SelectionLength = 0;
        }
        base.OnResize(e);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...