вопрос о владельце элемента управления списком (добавление элемента редактирования к элементу списка) - PullRequest
0 голосов
/ 03 августа 2009

Я использую стиль переменной draw владельца для списка (winforms 2.0) когда пользователь выбирает элементы, я хочу нарисовать элемент управления редактирования в этой ячейке Это выполнимо не выпадающий, а фактический элемент управления редактирования, появляющийся в ячейке или элементе как спасибо

1 Ответ

1 голос
/ 03 августа 2009

Я использую некоторые аналогичные для ListView. Метод:

  1. Создать TextBox, добавить в массив Controls и скрыть один.

    innerTextBox.Size = новый размер (0, 0);

    innerTextBox.Location = новая точка (0, 0);

    this.Controls.AddRange (новый элемент управления [] {this.innerTextBox});

    innerTextBox.KeyPress + = new KeyPressEventHandler (this.EditOver);

    innerTextBox.LostFocus + = new EventHandler (this.FocusOver);

    innerTextBox.Hide ();

    innerTextBox.Text = "";

  2. При событии DoubleClick связать собственный метод, где найти выбранный элемент и получить значение для TextBox

    this.DoubleClick + = новый EventHandler (this.EditableDoubleClick);

    private void EditableDoubleClick (отправитель объекта, System.EventArgs e) {

    selectedItemText = selectedItem.ToString ();

    innerTextBox.Size = новый размер (subItemRect.right - subItemRect.left, subItemRect.bottom - subItemRect.top);

    innerTextBox.Location = новая точка (subItemRect.left, subItemRect.top);

    * +1034 * innerTextBox.Show ();

    innerTextBox.Text = selectedItemText;

    }

  3. При потере фокуса в TextBox - установить значение обратно в выбранный элемент.

    selectedItem = innerTextBox.Text;

...