列表框控件ownerdraw问题(向列表框项添加编辑控件)

时间:2009-08-02 20:14:57

标签: c# controls ownerdrawn

我使用所有者绘制变量样式的列表框(winforms 2.0) 当用户选择我想在该单元格中绘制编辑控件的项目时 这是可行的吗? 不是下拉,而是实际的编辑控件出现在单元格或项目中 怎么样 谢谢

1 个答案:

答案 0 :(得分:1)

我正在使用类似的ListView。方法是:

  1. 创建TextBox,添加到Controls数组,然后隐藏一个。

    innerTextBox.Size = new Size(0,0);

    innerTextBox.Location = new Point(0,0);

    this.Controls.AddRange(new Control [] {this.innerTextBox});

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

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

    innerTextBox.Hide();

    innerTextBox.Text =“”;

  2. 在DoubleClick事件绑定自己的方法中,找到所选项目并获取TextBox

    的值

    this.DoubleClick + = new EventHandler(this.EditableDoubleClick);

    private void EditableDoubleClick(object sender,System.EventArgs e) {

    selectedItemText = selectedItem.ToString();

    innerTextBox.Size = new Size(subItemRect.right - subItemRect.left,subItemRect.bottom - subItemRect.top);

    innerTextBox.Location = new Point(subItemRect.left,subItemRect.top);

    innerTextBox.Show();

    innerTextBox.Text = selectedItemText;

    }

  3. 在TextBox中失去焦点 - 将值设置回选定项目。

    selectedItem = innerTextBox.Text;