如何实现WinForms窗体隐藏
来源:互联网 发布:网络萨顶顶歌曲大全 编辑:程序博客网 时间:2024/04/30 15:36
如QQ程序,窗体在桌面边界失去焦点时,窗体自动隐藏到桌面边缘,当鼠标移动到隐藏的窗体上时,窗体又会显示出来,可以用以下方法实现:
- // 当窗体的位置发生改变时,定位窗体的位置
- internal AnchorStyles StopAanhor = AnchorStyles.None;
- private void mStopAnhor()
- {
- if(this.Top <= 0 && this.Left <= 0)
- {
- StopAanhor = AnchorStyles.None;
- }
- else if (this.Top <= 0)
- {
- StopAanhor = AnchorStyles.Top;
- }
- else if (this.Left <= 0)
- {
- StopAanhor = AnchorStyles.Left;
- }
- else if (this.Left >= Screen.PrimaryScreen.Bounds.Width - this.Width)
- {
- StopAanhor = AnchorStyles.Right;
- }
- else if (this.Top >= Screen.PrimaryScreen.Bounds.Height - this.Height)
- {
- StopAanhor = AnchorStyles.Bottom;
- }
- else
- {
- StopAanhor = AnchorStyles.None;
- }
- }
- // 当窗体的位置改变时
- private void MainForm_LocationChanged(object sender, EventArgs e)
- {
- this.mStopAnhor();
- }
- /// <summary>
- /// 时间控件,控制窗体的坐标
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void timer1_Tick(object sender, EventArgs e)
- {
- if (this.Bounds.Contains(Cursor.Position))
- {
- switch (this.StopAanhor)
- {
- case AnchorStyles.Top:
- //窗体在最上方隐藏时,鼠标接触自动出现
- this.Location = new Point(this.Location.X, 0);
- break;
- //窗体在最左方隐藏时,鼠标接触自动出现
- case AnchorStyles.Left:
- this.Location = new Point(0, this.Location.Y);
- break;
- //窗体在最右方隐藏时,鼠标接触自动出现
- case AnchorStyles.Right:
- this.Location = new Point(Screen.PrimaryScreen.Bounds.Width - this.Width, this.Location.Y);
- break;
- }
- }
- else
- {
- //窗体隐藏时在靠近边界的一侧边会出现2像素原因:感应鼠标,同时2像素不会影响用户视线
- switch (this.StopAanhor)
- {
- //窗体在顶部时时,隐藏在顶部,底部边界出现2像素
- case AnchorStyles.Top:
- this.Location = new Point(this.Location.X, (this.Height - 2) * (-1));
- break;
- //窗体在最左边时时,隐藏在左边,右边边界出现2像素
- case AnchorStyles.Left:
- this.Location = new Point((-1) * (this.Width - 2), this.Location.Y);
- break;
- //窗体在最右边时时,隐藏在右边,左边边界出现2像素
- case AnchorStyles.Right:
- this.Location = new Point(Screen.PrimaryScreen.Bounds.Width - 2, this.Location.Y);
- break;
- }
- }
- }
0 0
- 如何实现WinForms窗体隐藏
- 如何实现WinForms窗体隐藏
- C#winforms实现windows窗体人脸识别
- Java实现窗体隐藏
- Java实现窗体隐藏
- 如何实现象QQ那般隐藏的窗体
- WinForms 窗体容器
- WinForms窗体移动
- WinForms窗体抖动
- WinForms窗体移动
- 如何打开窗体即隐藏
- WinForms窗体退出的问题
- winforms中的窗体传值
- 在WinForms程序里实现窗体传值的最佳实践
- 在WinForms程序里实现窗体传值的最佳实践 - .NET技术 / C#
- 在WinForms程序里实现窗体传值的最佳实践
- 在WinForms程序里实现窗体传值的最佳实践
- 在WinForms程序里实现窗体传值的最佳实践
- HTML中的 IFRAME标签
- 【转载】机器学习最佳入门学习资料汇总
- android的消息处理机制(图文+源码分析)—Looper/Handler/Message
- 按位与、或、异或等运算方法
- [搜索] Solr (二) 配置文件
- 如何实现WinForms窗体隐藏
- 有理想的程序员必须知道的15件事
- 对 HTTP 304 的理解(转)
- 2 sum problem
- WinForms窗体移动
- WampServer修改MySQL密码的问题
- C#Windows 窗体设计-实现欢迎界面-显示About窗体-在托盘中写入应用程序图标
- C# List<T>使用方式
- SETUP命令处理