c# - C# showdialog 窗口有时停留在主窗口的后面
问题描述
我有一个主窗口,当用户在文本框中单击 C 时,有一个文本框,另一个小窗口打开,因为 showdialog 出现信息,问题是有时它会打开,但有几次它在你不能的主窗体后面看到它,甚至无法访问它似乎主窗体变成了显示对话框。如果在后台打开 Windows 文件夹,当在文本框中单击 C 时,该文件夹会出现在屏幕上我的程序前面,但焦点仍停留在程序上。这是一个真正的斗争,我已经研究了很长时间,我似乎找不到问题。
我已经尝试过 bringtofront()、Activate() 但无论如何都不起作用 showdialog 窗口应该始终位于父窗口的顶部。
这是我的代码:
if (e.KeyCode == Keys.C && txtQauntity.Text != "" && (txtForm.Text == "Cash Sale" | txtForm.Text == "Debtors Cash Sale" | txtForm.Text == "Debtors Account Sale" | txtForm.Text == "New Laybye"))
{
e.Handled = true;
e.SuppressKeyPress = true;
using (var frm = new frmQuotation(this))
{
frm.BackColor = this.BackColor;
frm.gbProductDetails.BackColor = this.BackColor;
frm.gbDispute.BackColor = this.BackColor;
frm.chkDispute.BackColor = this.BackColor;
frm.txtSellIncl.BackColor = this.BackColor;
frm.txtPriceDate.BackColor = this.BackColor;
frm.txtOnOrder.BackColor = this.BackColor;
frm.txtOnhand.BackColor = this.BackColor;
frm.txtMininumLvl.BackColor = this.BackColor;
frm.txtMarkup.BackColor = this.BackColor;
frm.txtLastReceived.BackColor = this.BackColor;
frm.txtLastQtyGrv.BackColor = this.BackColor;
frm.txtItemRating.BackColor = this.BackColor;
frm.txtItemCode.BackColor = this.BackColor;
frm.txtDisputeReason.BackColor = this.BackColor;
frm.txtDisputeDate.BackColor = this.BackColor;
frm.txtDesc.BackColor = this.BackColor;
frm.txtCostIncl.BackColor = this.BackColor;
frm.txtCode.BackColor = this.BackColor;
frm.gbCredentials.BackColor = this.BackColor;
frm.txtuser.BackColor = this.BackColor;
frm.txtPass.BackColor = this.BackColor;
frm.Size = new Size(953, 650);
frm.txtItemCode.Focus();
frm.ActiveControl = frm.txtItemCode;
frm.Activate();
frm.BringToFront();
frm.ShowDialog(this); // this is where the window opens
解决方案
推荐阅读
- c - 使用 getline 与 fgets 进行基本文件打印
- java - 如何在 Linux 上安装的工具中运行命令
- php - “JSON.parse:JSON 数据第 1 行第 1 列的意外字符”
- imacros - iMacros:如何进行随机选择点击?
- jquery - 如何在选择内联表单集中的选择字段时填充相关字段
- html - 如何使包装的div扩展到全宽
- postgresql - 如何将表分区到两列?
- mysql - 如何使用 dbplyr 连接到 mysql 数据库
- windows - 如何在 Windows 上将共享文件夹设置为 docker 容器 docker
- bash - 如何在bash中接受多个参数