ama*_*int 2 .net c# windows multiple-monitors winforms
我们有一个使用双显示器设置的应用程序 - 用户A将与监视器1一起使用,用户B将同时使用监视器2.监视器2是触摸屏设备.
现在,问题是,当用户A在他的屏幕中输入内容时,如果用户B尝试做某事,用户A将最终失去他窗口的焦点,这是灾难性的.
即使用户B对Monitor 2执行某些操作,在Monitor 1中保持对窗口的关注可能是一个很好的解决方案?
一些弯头油脂是可能的.将此代码粘贴到您在触摸屏上显示的表单中:
protected override CreateParams CreateParams {
get {
const int WS_EX_NOACTIVATE = 0x08000000;
CreateParams param = base.CreateParams;
param.ExStyle |= WS_EX_NOACTIVATE;
return param;
}
}
Run Code Online (Sandbox Code Playgroud)
这确保了表单不会从主表单中窃取焦点.看起来像这样:
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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3415 次 |
| 最近记录: |