有没有办法将 ShowDialog() 设置为不在最顶层?我已经查看了所有相关的SO问题,但没有一个quite符合我的情况。
我所做的是从 datagridview 按钮列打开一个新的 WinForm。这个新表单从几个 SQLite 表中提取信息,并允许用户将信息添加到单击按钮的行。
我使用下面的代码打开 WinForm。我使用 ShowDialog() 方法,这样我就可以判断用户是保存表单中的信息还是取消它。
Pay_Bill_Window paywindow = new Pay_Bill_Window(getClickedRowID);
if (paywindow.ShowDialog() == DialogResult.OK)
{
FillPendingPaymentDataGrid(dbAccess.GetPendingBills());
}
我这样做是为了判断是否需要重新加载 datagridview 中的信息。
用户可以填写到窗口中的信息来自其他来源,例如 Web 浏览器,因此将表单置于所有应用程序之上并不理想。
有没有一种方法可以阻止窗口位于所有应用程序的顶部(我的一系列窗口中的最顶部就可以),或者有没有办法告诉用户在另一个表单上单击了哪个按钮(基本上,使用paywindow.Show()
并观察不同类型的回报)?
谢谢你的帮助!
默认情况下,表单不应该是“对于所有应用程序意义上的”TopMost。如果您看到这种行为,很可能是因为该属性是在设计器中设置的。在设计器中取消设置该属性或尝试以下操作。
using ( Form form = CreateMyForm() ) {
form.TopMost = false;
form.ShowDialog(parent);
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)