把重点放回主要forms
我有一个C#应用程序有两种forms。
第一个是应该始终打开的主要forms。
第二个是用户可以启用的预览窗格。
当用户选择显示预览窗格(菜单选项)时,将打开预览窗格。
这就是我想要的。
但是我想阻止预览窗格获得焦点。 否则,如果用户想要访问菜单(在主窗体上),他们首先点击它,看起来没有任何事情发生(但实际上焦点从预览切换 – >主要)。 只有在第二次点击后,他们才能访问菜单。
所以我认为我有一个非常简单的解决方案:
如果预览得到焦点,只需将焦点设置为主窗体。
但是看起来我无法从预览窗格访问主窗体。
要显示预览窗格,我只需(在主窗体上):
QRcodeGenerator.QrCodePreview preview = new QRcodeGenerator.QrCodePreview(); preview.show();
我尝试通过执行(在预览窗口上)将焦点放回主窗体:
private void QrCodePreview_GotFocus(object sender, EventArgs e) { QrCodeGenerator.QrCodeSampleApp.focus(); }
但正如所述,我看起来无法访问它。
表格消失了https://sofzh.miximages.com/c%23/looking_for_my_main_form.png
你需要将mainform的实例传递给子窗体。 因此,在调用show之前在预览表单上创建一个属性。 然后从预览表单的实例访问主窗体的该实例
如果你调用
preview.show();
如
preview.show(this);
您可以使用preview.Parent访问预览对象内的主窗体。
你可以试试,
对于Form1做,
public static Form1 Current; public Form1() { InitializeComponent(); Current = this; }
然后从预览表格,
Form1.Current.Focus();
使用ShowDialog()开始预览,然后调用ShowDialog()调用this.Focus()后的下一行
上述就是C#学习教程:把重点放回主要forms分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1005190.html