WinForm实现鼠标悬停显示控件

简介:

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

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

本例中的基本需求是:

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

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


本文转自斯克迪亚博客园博客,原文链接http://www.cnblogs.com/SkyD/archive/2010/09/02/1815613.html,如需转载请自行联系原作者

相关文章
WPF 获取列表中控件的同时,选中其所在行
WPF 获取列表中控件的同时,选中其所在行
|
容器 网络架构 C#
WPF 控件库——可拖动选项卡的TabControl
原文:WPF 控件库——可拖动选项卡的TabControl 一、先看看效果   二、原理 1、选项卡大小和位置   这次给大家介绍的控件是比较常用的TabControl,网上常见的TabControl样式有很多,其中一部分也支持拖动选项卡,但是带动画效果的很少见。
1448 0
|
C#
【WPF】使用Popup控件做浮窗/提示框
原文:【WPF】使用Popup控件做浮窗/提示框 需求:当鼠标移入某个区域时,弹出一个浮窗,以便用户进行下一步操作。 效果如下图: 当鼠标移入左上角的【多选显示】框内,出现下面的浮窗(悬浮在原UI之上)。
4186 0
|
C# 索引
WPF实用指南二:移除窗体的图标
原文:WPF实用指南二:移除窗体的图标 WPF没有提供任何功能来移除窗体上的icon图标。一般的做法是设置一个空白的图标,如下图1: 这种做法在窗体边框与标题之间仍然会保留一片空白。
1129 0
|
C# 前端开发
wpf中的datagrid绑定操作按钮是否显示或者隐藏
如图,需要在wpf中的datagrid的操作那列有个确认按钮,然后在某些条件下确认按钮可见,某些情况下不可见的,放在mvc里直接在cshtml页面中if..else就行了。 但是在wpf里不行。。网上搜索了好久才找到解决方法,原来只是binding那个visiable属性就行了,
6845 0
|
C#
自定义WPF 窗口样式
原文:自定义WPF 窗口样式 自定义 Window 在客户端程序中,经常需要用到自定义一个 Window ,大部分是为了好看吧。
1286 0
|
C#
WPF 自定义窗口关闭按钮
原文:WPF 自定义窗口关闭按钮 关闭图标设计主要涉及主要知识点: 1、Path,通过Path来画线。当然一般水平、竖直也是可以用Rectangle/Border之类的替代      一些简单的线条图标用Path来做,还是很方便的。
1144 0
|
索引 Windows 程序员