如何避免在c#模式显示表单时的闪烁/闪烁效果
本文关键字:闪烁 表单 何避免 模式 显示 | 更新日期: 2023-09-27 18:17:18
我一直在做一个基于c#的Windows窗体应用程序,我需要一些帮助。
如下所示:
frmPopUp frmAdd = new frmPopUp();
frmAdd.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
frmAdd.Location = new System.Drawing.Point(450, 200);
frmAdd.showdialog();
this.Create();
,当我在代码中使用这个函数,并单击任何地方以外的frmAdd边界,它闪烁或闪烁,这是烦人的,我不想要的。(但"创建"功能后,窗体被关闭)这是我的问题,我不想眨眼,同时函数也应该在窗体关闭后调用。
经过一些搜索,我尝试了从下面提到的链接导入dll解决方案-在这种情况下,我面临的问题是,创建函数应该总是在frmadd表单关闭后调用。但它会在表单创建时被调用。例如:
SetNativeEnabled(false);
frmPopUp frmAdd = new frmPopUp();
frmAdd.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
frmAdd.Location = new System.Drawing.Point(450, 200);
frmAdd.Closed += (s, a) =>
{
SetNativeEnabled(true);
};
frmAdd.Show(this);
this.Create();
我对制作Windows窗体应用程序相当陌生,所以仍然有一些事情我不理解,所以如果我一开始不理解,请耐心等待。
这些是我尝试过的链接:
- 避免在Windows窗体中闪烁?
- 在Windows窗体应用程序中闪烁
- 如何摆脱Windows窗体应用程序的闪烁
- 失去焦点时窗口闪烁?
Create函数应该总是在frmadd表单关闭后被调用。
所以改变你的匿名委托:
private void button1_Click(object sender, EventArgs e)
{
frmPopUp frmAdd = new frmPopUp();
frmAdd.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
frmAdd.Location = new System.Drawing.Point(450, 200);
frmAdd.Closed += (s, a) =>
{
this.Create();
};
frmAdd.Show(this);
}