不显示删除回复显示所有回复显示星级回复显示得分回复 ComboBox和Treeview绑定后设置成DropDownList后无法获取值
2009-08-01 15:58
531 查看
将TreeView控件绑定到ComboBox控件后,设置控件的DropDownStyle为默认的DropDown,然后选择TreeView节点后,节点文本能够显示在ComboBox中,但是如果DropDownStyle为DropDownList,则选择TreeView节点后,节点文本不会显示在ComboBox中,不知道代码还缺少什么。我的代码和运行结果如下:
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace ComboBoxTreeViewControl
{
public class ComboBoxTreeView : ComboBox
{
private const int WM_LBUTTONDOWN = 0x201, WM_LBUTTONDBLCLK = 0x203;
ToolStripControlHost treeViewHost;
ToolStripDropDown dropDown;
public ComboBoxTreeView()
{
TreeView treeView = new TreeView();
treeView.AfterSelect += new TreeViewEventHandler(treeView_AfterSelect);
treeView.BorderStyle = BorderStyle.None;
treeViewHost = new ToolStripControlHost(treeView);
dropDown = new ToolStripDropDown();
dropDown.Width = this.Width;
dropDown.Items.Add(treeViewHost);
}
public void treeView_AfterSelect(object sender, TreeViewEventArgs e)
{
this.Text = TreeView.SelectedNode.Text;
dropDown.Close();
}
public TreeView TreeView
{
get { return treeViewHost.Control as TreeView; }
}
private void ShowDropDown()
{
if (dropDown != null)
{
treeViewHost.Size = new Size(DropDownWidth - 2, DropDownHeight);
dropDown.Show(this, 0, this.Height);
}
}
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_LBUTTONDBLCLK || m.Msg == WM_LBUTTONDOWN)
{
ShowDropDown();
return;
}
base.WndProc(ref m);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (treeViewHost != null)
{
treeViewHost.Dispose();
treeViewHost = null;
}
if (dropDown != null)
{
dropDown.Dispose();
dropDown = null;
}
}
base.Dispose(disposing);
}
}
}
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace ComboBoxTreeViewControl
{
public class ComboBoxTreeView : ComboBox
{
private const int WM_LBUTTONDOWN = 0x201, WM_LBUTTONDBLCLK = 0x203;
ToolStripControlHost treeViewHost;
ToolStripDropDown dropDown;
public ComboBoxTreeView()
{
TreeView treeView = new TreeView();
treeView.AfterSelect += new TreeViewEventHandler(treeView_AfterSelect);
treeView.BorderStyle = BorderStyle.None;
treeViewHost = new ToolStripControlHost(treeView);
dropDown = new ToolStripDropDown();
dropDown.Width = this.Width;
dropDown.Items.Add(treeViewHost);
}
public void treeView_AfterSelect(object sender, TreeViewEventArgs e)
{
this.Text = TreeView.SelectedNode.Text;
dropDown.Close();
}
public TreeView TreeView
{
get { return treeViewHost.Control as TreeView; }
}
private void ShowDropDown()
{
if (dropDown != null)
{
treeViewHost.Size = new Size(DropDownWidth - 2, DropDownHeight);
dropDown.Show(this, 0, this.Height);
}
}
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_LBUTTONDBLCLK || m.Msg == WM_LBUTTONDOWN)
{
ShowDropDown();
return;
}
base.WndProc(ref m);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (treeViewHost != null)
{
treeViewHost.Dispose();
treeViewHost = null;
}
if (dropDown != null)
{
dropDown.Dispose();
dropDown = null;
}
}
base.Dispose(disposing);
}
}
}
相关文章推荐
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 dev 控件中 gridControl1 控件的button列 事件中如何获取所在行的某列的值
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 ASP加javascript实现图片轮流显示(图片路径从数据库中读取)
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 警告: SQL Error: 0, SQLState: null,严重: Cannot create PoolableConnectionFactory
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回
- 不显示删除回复显示所有回复显示星级回复显示得分回复 如何简便地将一台机器上的oracle数据库迁移到另一台机器上[问题点数:100分]
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 php的简繁转换
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 有损脑健康的七种坏习惯
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 js使字符串里面所有的数字执行+1操作
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 一个女linux工程师之路
- 不显示删除回复显示所有回复显示星级回复显示得分回复 把FrameWork和自己的安装程序(在.net中生成的)集成在一起成为安装包,安装时检测用户是否安装了FrameWork,如果安装了跳过安装FrameWork
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 属性表单问题,编译后,运行中会出错,求教!
- 不显示删除回复显示所有回复显示星级回复显示得分回复 POI "读" word 图片、表格、纯文本
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 未能找到路径“E:\Program\demo_ftp\ftp1\admin\
- 不显示删除回复显示所有回复显示星级回复显示得分回复 [推荐] Asp.NET生成静态页面并分页
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 有损脑健康的七种坏习惯
- 不显示删除回复显示所有回复显示星级回复显示得分回复 Android多线程设计模式之-wait()和notify()机制
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 为什么有时候ASP在插入一条记录时,它会在数据里面插入两条一样的记录?
- 不显示删除回复显示所有回复显示星级回复显示得分回复 【原创】用好SSH (Struts2+Spring+Hibernate) - AppFuse 2.1.0.M2 的安装运行步骤[转自CSDN]
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 Javascript中最常用的55个经典技巧
- 不显示删除回复显示所有回复显示星级回复显示得分回复 网友已总结好的《JS语法字典》[