【问题标题】:Hide form and show隐藏表格并显示
【发布时间】:2020-10-29 00:17:05
【问题描述】:

我想要做的是当 form2 打开时隐藏父表单。 这不是问题,但是当 form2 关闭时,我想再次显示父表单。

   this.Hide();
   ReadFrom form = new ReadFrom();
   form.ShowDialog();
   this.Show();

只会快速闪烁父级并且它仍然停留在屏幕上(windows form not wpf)

【问题讨论】:

  • 看起来您的新 ReadFrom frm 在加载时会立即自行卸载。 (听起来好像有一个错误。)你能显示 ReadFrom 的代码吗?
  • 作为拼写错误关闭,因为 OP 的自我回答提到完全相同的代码在其他更改后有效

标签: c# windows-forms-designer


【解决方案1】:

我向上帝发誓我不知道怎么做,但我尝试了你的答案 ToniMaciej Los。 两者都没有工作。 但它引导了我。 我不知道为什么现在可以使用,但是可以使用(可能错误地更改了属性,现在可以使用了,不知道) 代码:

   this.Hide();
   ReadFrom form = new ReadFrom();
   form.ShowDialog();
   this.Show();

很抱歉给大家带来不便。

【讨论】:

  • 问题是:ShowDialog(); 我猜,试试Show();吧。
  • 它仍然有同样的错误,你的应用程序暂时没有可以获取焦点的窗口。因此,操作系统可能会选择另一个正在运行的应用程序的窗口,并且您的窗口会显示在它后面。你必须让它再次可见之前对话框消失,FormClosing 事件。
【解决方案2】:

第一种形式:

public partial class Form1 : Form
{
    public Form1() { InitializeComponent(); }

    private void button1_Click(object sender, EventArgs e)
    {
        ReadFrom form = new ReadFrom();
        form.Owner = this;
        this.Hide();
        form.ShowDialog();
    }
}

第二种形式:

public partial class ReadFrom : Form
{
    public ReadFrom() { InitializeComponent(); }

    private void ReadFrom_FormClosed(object sender, FormClosedEventArgs e)
    {
        this.Owner.Show();
    }
}

【讨论】:

  • 我该如何将“App”更改为?,我尝试了项目名称,它给了我这个错误:严重性代码描述项目文件行抑制状态错误 CS0234 类型或命名空间名称“当前”不存在在命名空间“project20”中(您是否缺少程序集引用?)
  • 这完全不同。 form 不再是模态对话框,用户可以手动显示父表单并与之交互,这在 OP 代码中是不可能的。
猜你喜欢
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多