【问题标题】:show / hide form when cursor is in the top left corner当光标位于左上角时显示/隐藏表单
【发布时间】:2009-07-13 11:38:16
【问题描述】:

我在 vb.net 中有一个看起来像这样的小表格

http://img11.imageshack.us/img11/5651/samplennk.jpg

你知道如何设置windows任务栏在鼠标位置一直在底部时出现和消失吗?当鼠标位于屏幕左上角时,我想对我的表单做同样的事情。

或者你可以向我建议一种不同的方式来做到这一点。用户可能只需要在使用期间设置这些跟踪栏几次。

【问题讨论】:

    标签: vb.net winforms


    【解决方案1】:

    您可以只使用一个线程来检查 Cursor.Position,当它为 0,0 时,表单就会出现。

    这有点粗略,但是将初始窗体窗口状态设置为最小化。

    public partial class Form1 : Form
    {
        private delegate void ShowFormDel();
        private readonly ShowFormDel _ShowFormDel;
        private bool _CheckForMouse;
    
        public Form1()
        {
            InitializeComponent();
            _CheckForMouse = true;
            _ShowFormDel = ShowForm;
            Thread x = new Thread(CheckMouseThread);
            x.Start();
        }
    
        public void CheckMouseThread()
        {
            while (_CheckForMouse)
            {
                if (Cursor.Position.X < 5 && Cursor.Position.Y < 5)
                {
                    this.Invoke(_ShowFormDel);
                }
                Thread.Sleep(1000);
            }
        }
    
        private void ShowForm()
        {
            this.Location = new Point(0, 0);
            this.WindowState = FormWindowState.Normal;
            this.Activate();
            this.Visible = true;
        }
    
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            _CheckForMouse = false;
        }
    
        private void Form1_MouseLeave(object sender, System.EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }
    }
    

    【讨论】:

    • 嘿非常好,但你能把它放在 vb.net 中吗?
    • 好久没接触VB了,不好意思,你一个人!应该不难转换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2021-09-16
    • 2011-01-29
    • 2017-05-05
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多