在Winfrom 中,如何实现combox 的列表自动显示ToolTip提示 ?

上边是实现后的结果,找了好长时间,才找到,做个记录。

实现代码如下:

?

ToolTip tt = null;

       ComboBox cb = null;

       private void Form1_Load(object sender, EventArgs e)

       {

           cb = new ComboBox();

           cb.Items.Insert(0,"第一");

           cb.Items.Insert(1,"第二");

           cb.Items.Insert(2,"第三");

           cb.Items.Insert(3,"第四");

           cb.DrawMode = DrawMode.OwnerDrawFixed;

           cb.DrawItem+=new DrawItemEventHandler(cb_DrawItem);

           cb.DropDownClosed+=new EventHandler(cb_DropDownClosed);

           this.Controls.Add(cb);

           cb.SelectedIndex = 1;

           tt = new ToolTip();

           tt.SetToolTip(cb, "zj");

       }

void cb_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)

       {

           // 绘制背景

           e.DrawBackground();

           //绘制列表项目

           e.Graphics.DrawString(cb.Items[e.Index].ToString(), e.Font, System.Drawing.Brushes.Black, e.Bounds);

           //将高亮的列表项目的文字传递到toolTip1(之前建立ToolTip的一个实例)

           if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)

               tt.Show(cb.Items[e.Index].ToString(), cb, e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height);

           e.DrawFocusRectangle();

       }

       void cb_DropDownClosed(object sender, EventArgs e)

       {

           tt.Hide(cb);

       }

时间: 2024-10-05 23:27:26

在Winfrom 中,如何实现combox 的列表自动显示ToolTip提示 ?的相关文章

BackgroundWorker实现的winfrom中实现异步等待加载图片显示

BackgroundWorker简介    BackgroundWorker在winfrom中有对应控件,该有三个事件:DoWork .ProgressChanged 和 RunWorkerCompleted. 在程序中调用RunWorkerAsync方法则会启动DoWork事件的事件处理,当在事件处理过程中,调用 ReportProgress方法则会启动ProgressChanged事件的事件处理,而当DoWork事件处理完成时,则会触发RunWorkerCompleted事件.您必须非常小心

winfrom中DataGridView绑定数据控件中DataGridViewCheckBoxColumn怎么选中

for (int i = 0; i < this.dataGridView1.Rows.Count; i++) { this.dataGridView1.Rows[i].Cells["CheckBoxCulums"].Value = this.checkBox1.Checked; } winfrom中DataGridView绑定数据控件中DataGridViewCheckBoxColumn怎么选中,布布扣,bubuko.com

Winfrom中如何使用Iconfont字体图标补充

1.参考技术文章:http://www.cnblogs.com/isaboy/p/csharp_Font_Awesome_window_form_icon.html 2.参考后主要纠结在图标的unicode在Winfrom中显示问题上. 阿里的这个字体默认打开demo_unicode.html页面后显示如上图显示. 示例1: 示例2: 需要将 &#x 替换成 \u 最终是\ue603

Winfrom中ListBox绑定List数据源更新问题

Winfrom中ListBox绑定List数据源更新问题 摘自:http://xiaocai.info/2010/09/winform-listbox-datasource-update/ Winfrom中ListBox绑定List数据源,第一次可以成功,但后面List更新以后,ListBox并没有更新. 如果 ListBox的数据源 是 DataTable 是可以自动更新的,但若是 List<T> 时对数据的修改界面不会更新,使用 BindingSource 绑定就可以了.private v

C#winfrom中splitContainer的用法

(1).splitContainer不能被鼠标直接点击选中,可通过右击->选择splitContainer选中. (2).属性IsSplitterFixed用于设置拆分器能否移动. (3).属性FixedPanel用于设置为Panel1(或Panel2),这样在调整窗体的大小时,Panel1面板(或Panel2面板)的大小默认不变:若设置为None,则Panel1面板和Panel2面板按比例缩放. (4).属性Orientation决定拆分器的方向,当该属性设置为Vertical时,拆分器将垂直

Winfrom中的几种传值方式

1.最常见的一种, 不知道你们是否记得构造函数,当然这是对有点基础的人说的, 再我们申明一个类的时候,可能很多时候都不会注意,因为会我们的编辑器自带会默认生成一个不带参数的构造函数, 所以不在意,但是我们可以自己创建,替代隐式的构造函数, 创建方法 记住一点:申明构造函数时,构造函数名必须与类名一致,也就是你说可以Ctrl+C,Ctrl+V Winfrom中的构造函数: .NET和类中的构造函数: 做完上面的这些东西之后,就可以传值了 ,再别的页面实例化你所要传值的页面,当show页面的时候就可

linux内核中的哈希散列表

    介绍一下linux内核中的哈希散列表的实现,在linux内核中哈希散列表(hash list)用的非常的多, 并且自己以后在做软件设计的时候,也非常有可能用到.毕竟,哈希散列表在数据的查找过程中非常的方便.      linux内核对哈希散列表的实现非常的完美,所以非常有必要学习一下. 在哈希散列表的实现过程中,用到的两个非常有用的结构体:      哈希散列表头结构体 :                          struct hlist_head               

winfrom 中datagridview中checkbox的使用方法

private void dgdv_skjs_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex != -1) { DataGridViewCheckBoxCell checkCell_rxwk = (DataGridViewCheckBoxCell)dgdv_skjs.Rows[e.RowIndex].Cells["rxwk"]; DataGridViewCheckBoxCell

Android疑惑记录-----在Adapter中配置按钮监听器时,列表项内容获取混乱的问题

xml布局如下: 界面: 代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent&