Alt+M快捷键无法关闭放大镜窗体的解决咨询
Alt+M快捷键无法关闭放大镜窗体的解决咨询
各位大佬好,我最近在做一个带放大镜功能的小工具,本来想让Alt+M这个快捷键来切换放大镜窗体的显示和隐藏,结果现在遇到个问题——只能用快捷键打开窗体,没法用同一个快捷键关闭它。
先给大家看看我目前写的按键检测代码:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Alt | Keys.M)) { ToggleMagnifier(); return true; } return base.ProcessCmdKey(ref msg, keyData); }
这部分是用来捕获Alt+M按键事件的,触发后会调用ToggleMagnifier方法,但这个切换方法我只写了一半,目前的代码是这样的:
private void ToggleMagnifier() { if (magnifierForm == null || magnifierForm.IsDisposed) { magnifierForm = new MagnifierForm() // 我现在只写了创建窗体的逻辑,完全没处理关闭的情况,是不是问题就出在这儿? } }
我现在有点摸不着头脑,是不是因为ToggleMagnifier里只判断了窗体不存在的情况,没去检查窗体当前是否正在显示,然后执行关闭操作?有没有大佬能帮我看看,应该怎么修改代码才能让同一个快捷键实现打开和关闭的切换呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

