想实现当鼠标经过combobox控件某个下拉项时显示提示该下拉项的详细信息,请问该怎么实现。事件MouseMove 和MouseHover
都试过,他们只是针对整个空间而不是控件下拉列表中的某项,所以不能实现。

解决方案 »

  1.   

    在现有的ComboBox上应该没法实现这个功能吧,如果非要不可的话,尝试一下派生一个ComboBox自己实现吧.
      

  2.   

    我以前也碰到过楼主这样的需求,我的做法是自绘项:首先要设置一下属性:
    comboBox1.DrawMode = DrawMode.OwnerDrawFixed;//不让系统画,自己画下拉项里面的内容添加DrawItem事件,在事件函数里这样写:        private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
            {
                e.DrawBackground();//选中一项时,其背景色会高亮,就靠这句了
                e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), e.Font, Brushes.Black, e.Bounds);//绘出项的显示内容
                label1.Text = e.Index.ToString();//这就是你要的提示信息了
            }
    备注:e.Index代表当前项的索引(也就是你鼠标在上面悬停的那个项)
    经过实践,是确实可行的,给分不?
      

  3.   

    是否可以重写combobox类,添加一个自定义事件呢?
      

  4.   

     只有绘制了那private void comboBox1_DrawItem(object sender, DrawItemEventArgs e) 
            { 
                e.DrawBackground();//选项时,其背景色会高亮
                e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), e.Font, Brushes.Black, e.Bounds);//绘出项的显示内容 
                label1.Text = "fdfdfdfdfd";//这就是你要提示的内容了
            }