如何避免在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窗体应用程序的闪烁
  • 失去焦点时窗口闪烁?

如何避免在c#模式显示表单时的闪烁/闪烁效果

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);
}