winform鼠标悬停在空间上显示提示tip

本文介绍了如何在Windows Forms应用程序中利用ToolTip组件为控件添加悬浮提示信息。通过创建一个名为MoveOverInfoTip的帮助类,提供设置单个控件和多个同类型控件提示信息的方法。在窗体的构造函数中调用这些方法,可以方便地为label2和一组Button添加相应的提示文本。示例代码展示了具体的实现步骤。
摘要由CSDN通过智能技术生成

有些时候我们为了节省界面控件和整洁度需要将一些提示信息以悬浮的方式显现给用户,在form窗体中怎么做呢,下面一起看一下:

我们需要用到toolTip组件,写一个帮助类

public class MoveOverInfoTip
    { 
        //信息提示组件
        private static ToolTip _toolTip = new ToolTip(); 
         
        /// <summary>
        /// 设置单个控件提示信息
        /// </summary>
        /// <typeparam name="T">组件类型</typeparam>
        /// <param name="t">组件</param>
        /// <param name="tipInfo">需要显示的提示信息</param>
        public static void SettingSingleTipInfo<T>(T t, string tipInfo) where T : Control
        {
            _toolTip.SetToolTip(t, tipInfo);
        }


        /// <summary>
        /// 设置多个同种类型的提示信息
        /// </summary>
        /// <typeparam name="T">组件类型</typeparam>
        /// <param name="dic">组件和提示信息字典</param>
        public static void SettingMutiTipInfo<T>(Dictionary<T, string> dic) where T : Control
        {
            if (dic == null || dic.Count <= 0) return;

            foreach (var item in dic)
            {
                _toolTip.SetToolTip(item.Key, item.Value);
            }

        }  
    } 

在窗体中使用,写到窗体的构造函数中

			//设置控件的提示信息
            MoveOverInfoTip.SettingSingleTipInfo(label2, "提示"); 
            Dictionary<Button, string> dic = new Dictionary<Button, string>();
            dic.Add(button4, "button4按钮");
            dic.Add(button5, "button5按钮");
            MoveOverInfoTip.SettingMutiTipInfo(dic); 

或者参考此文章https://blog.csdn.net/mazhiyuan1981/article/details/109199984?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-109199984-blog-98598223.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-109199984-blog-98598223.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=1

http://www.luofenming.com/list.aspx?CID=TYPE2013052800004

我们在使用WinForm中的TextBox的智能提示要使用到两个重要的TextBox属性, 一个是AutoCompleteMode,另一个是AutoCompleteSource。 AutoCompleteMode有四个值,分别是None,Append,Suggest,SuggestAppend。他们分别是:不给提示。最可能的匹配项自动追加到当前数据。产生由一个或多个建议完成字符串组成的下拉列表。最可能的匹配项自动追加到当前数据并产生由一个或多个建议完成字符串组成的下拉列表。 AutoCompleteSource属性允许您从一些系统源中进行选择,例如 FileSystem、HistoryList、RecentlyUsedList、AllUrl 和 CustomSource。如果选择 CustomSource,则必须向 AutoCompleteCustomSource属性提供一个字符串列表。 我们现在就开始 在VS中建一个新的项目,在From1中添加一个TextBox 并取名为TB_AutoComplete。再添加一个BackgroundWorker取名为bgWorker。 接下来的事都由代码完成。 public Form1() {     bgWorker.RunWorkerAsync();//打开异步操作,完成数据的读取     TB_AutoComplete.AutoCompleteMode = AutoCompleteMode.SuggestAppend; //最可能的匹配项自动追加到当前数据并产生由一个或多个建议完成字符串组成的下拉列表     TB_AutoComplete.AutoCompleteSource = AutoCompleteSource.CustomSource; //设置智能提示的源为自定义源    } AutoCompleteStringCollection GetDataFromDB() { AutoCompleteStringCollection ac = new AutoCompleteStringCollection(); string constr = "server=.;initial catalog=AutoComplete;integrated security=true"; //数据库连接 SqlConnection con = new SqlConnection(constr); string sql = "select * from AutoComplete" ; //我这里使用一个叫AutoComplete的数据库,数据库里有两个字段 一个ID,一个AutoComplete。用于存放智能提示的内容    SqwlCommand cmd = new SqlCommand(sql, con); try { con.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { string text = reader.GetString(0); ac.Add(text); } con.Close(); } catch (Exception ee) { con.Close(); MessageBox.Show("程序出错了,错误原因是:\n" + ee.Message, "温馨提示"); } return ac; } 然后我们在设计页面中找到bgWorker 在他的DoWorkg事件中写入   private void bgWorker_DoWork(object sender, DoWorkEventArgs e) { e.Result=GetDataFromDB(); } 在RunWorkerCompleted事件中写入 private void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { TB_AutoComplete.AutoCompleteCustomSource = (AutoCompleteStringCollection)e.Result; } 这样我们的智能提示就完成 了 效果图看附件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香煎三文鱼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值