当前位置:  开发笔记 > 编程语言 > 正文

如何使用双显示器应用程序解决此焦点问题?

如何解决《如何使用双显示器应用程序解决此焦点问题?》经验,为你挑选了1个好方法。

我们有一个使用双显示器设置的应用程序 - 用户A将与监视器1一起使用,用户B将同时使用监视器2.监视器2是触摸屏设备.

现在,问题是,当用户A在他的屏幕中输入内容时,如果用户B尝试做某事,用户A将最终失去他窗口的焦点,这是灾难性的.

即使用户B对Monitor 2执行某些操作,在Monitor 1中保持对窗口的关注可能是一个很好的解决方案?



1> Hans Passant..:

一些弯头油脂是可能的.将此代码粘贴到您在触摸屏上显示的表单中:

protected override CreateParams CreateParams {
  get {
    const int WS_EX_NOACTIVATE = 0x08000000;
    CreateParams param = base.CreateParams;
    param.ExStyle |= WS_EX_NOACTIVATE;
    return param;
  }
}

这确保了表单不会从主表单中窃取焦点.看起来像这样:

  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
      Thread t = new Thread(SecondMonitor);
      t.IsBackground = true;
      t.SetApartmentState(ApartmentState.STA);
      t.Start();
    }
    private void SecondMonitor() {
      Form2 f2 = new Form2();
      f2.StartPosition = FormStartPosition.Manual;
      f2.Left = 800;   // Use Screen class here...
      f2.ShowDialog();
    }

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有