WinForm实现鼠标悬停显示控件

摘要:
今天介绍的鼠标悬停显示功能就是一例,看似仅仅节省了一次点击,实则在繁复操作中能够为用户节约很多体力,提高舒适度。为5个按钮同时注册MouseEnter事件:编写MouseEnter事件处理函数:privatevoidbutton1_MouseEnter{monthCalendar1.Location=.Location;monthCalendar1.Show();monthCalendar1.BringToFront();monthCalendar1.Tag=sender;}代码中首先将日历控件的坐标设为与触发事件的按钮位置相同,然后显示日历控件,并将其发送到界面最前端以确保不被遮挡,最后将其Tag属性赋值为触发该事件的按钮,以方便后面事件中引用。

在某些需频繁操作的环节中,为提高效率、减少劳动,可以在操作细节上下功夫,以带来更好的用户体验。

今天介绍的鼠标悬停显示功能就是一例,看似仅仅节省了一次点击,实则在繁复操作中能够为用户节约很多体力,提高舒适度。

本例中的基本需求是:

鼠标移入设置区域后,直接弹出详尽设置内容,并当进行了设置或鼠标移出弹出的设置区域后,自动关闭弹出的设置区域。

image

在这里,我设计了5个按钮,以及一个日历控件,该日历控件就作为我们的详细设置内容,将其Visible属性设为False以隐藏。

为5个按钮同时注册MouseEnter事件:

image

编写MouseEnter事件处理函数:

private void button1_MouseEnter(object sender, EventArgs e)
{
    monthCalendar1.Location = (sender as Control).Location;
    monthCalendar1.Show();
    monthCalendar1.BringToFront();

    monthCalendar1.Tag = sender;
}

代码中首先将日历控件的坐标设为与触发事件的按钮位置相同,然后显示日历控件,并将其发送到界面最前端以确保不被遮挡,最后将其Tag属性赋值为触发该事件的按钮,以方便后面事件中引用。

(PS:控件的Tag属性一直没弄明白正经是干嘛用的,所以一直都用来随便装东西以方便传递^^)

随后为日历控件分别增加如下两个事件处理函数:

private void monthCalendar1_MouseLeave(object sender, EventArgs e)
{
    monthCalendar1.Hide();
}

private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
    (monthCalendar1.Tag as Control).Text = e.Start.ToShortDateString();
    monthCalendar1.Hide();
}

功能很简单,就不累述了。

测试运行情况:

2010-9-2 1-51-44

免责声明:文章转载自《WinForm实现鼠标悬停显示控件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用Win API查找并关闭窗口配置远程服务器,使hyper-v能够连接网络下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法

【前提】一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作。 【解决方案】 1.在窗体A中定义:public static double a;// 如果你的TextBox控件有初始默认值,这里一定要改为public static double a=初始值;否则初始值默认为0 2.在窗体A添加函数: pu...

微软:正式发布针对 .NET Core的 Winform 设计器

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 原文出处:https://devblogs.microsoft.com/dotnet/windows-forms-designer-for-net-core-released/ 作为微软最引以为傲的IDE编辑器,Visual Studio已经让无数专注于 .NE...

解决winform中mdi子窗体加载时显示最大化最小化按钮的方法

场景:在mid加载子窗体的时候如果指定WindowState为Maximized,加载完成后主窗体会显示最大化、最小化、关闭的按钮图标。 解决方法: 1.更改主窗体FormMain的属性。制定MainMenuStrip的属性为menuStrip1控件。menuStrip1控件就是主窗体上的菜单栏。 2.在menuStrip1控件的ItemAdded事件中添...

C# WinForm 文件上传下载

/// <summary> /// WebClient上传文件至服务器 /// </summary> /// <param name="fileNamePath">文件名,全路径格式</param> /// <param name="uriString">服务器文件夹路径</...

winform项目笔记:

餐饮管理系统:三层架构模式。 Modal,bll,dal,UI,Common.   知识点:     using语句释放的是非托管的资源。托管的资源会有CLR自动释放。     DataGridView控件:      dataGridView1.AutoGenerateColumns = false; 把自动生成列关掉。   事件其实也是一个方法,想要调用...

winform程序 实现类似 qq 消息提醒功能实现

Winform托盘NotifyIcon使用(类似QQ消息提示) Winform托盘NotifyIcon使用(类似QQ消息提示) 概述:在做cti的过程中,需要在来电的时候在客户端弹出对应的客户信息,所以需要做一个托盘的客户端程序运行,当有来电的时候通过托盘图标的闪动(当然也可以加些音效)来提示坐席人员。这里我使用了NotifyIcon控件实现,主要步骤如下...