列表框控件所有者绘制问题(向列表框项添加编辑控件)

发布于 2024-07-29 17:03:26 字数 110 浏览 8 评论 0原文

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

I am using owner draw variable style for a listbox( winforms 2.0)
when a user selects an items I want to draw an edit control in that cell
Is that doable
not a drop down but an actual edit control appearing in the cell or item as it were
how
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只为一人 2024-08-05 17:03:26

我正在为 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(对象发送者,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. 当文本框中失去焦点时 - 将值设置回所选项目。

    selectedItem = insideTextBox.Text;

I'm using some similar for ListView. Method is:

  1. Create TextBox, add to Controls array, and hide one.

    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. On DoubleClick event bind own method where find selected Item and get value to 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. On lost focus in TextBox - set value back into selected item.

    selectedItem = innerTextBox.Text;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文