如何在 C# 中执行由按钮控制的并排窗体

本文关键字:控制 窗体 按钮 执行 | 更新日期: 2023-09-27 18:35:17

我必须创建一个表格,其中包含 C# 中可能的过滤器。

因此,我想使用一个按钮在主窗体中的"显示过滤器>"和"<隐藏过滤器"之间切换,以另一种形式显示过滤器。>

我使用以下代码并排打开主窗体的筛选器:

var frmFilters = new FrmFilterSearch();
frmFilters.SetDesktopLocation(Location.X + Size.Width, Location.Y);
if (!Filters)
   {
        Filters = true;
        btn_show_filters.Text = "< Hide filters";
        frmFilters.Show();
   }
else
   {
        Filters = false;
        btn_show_filters.Text = "Show filters >";
        frmFilters.Hide();
   }
过滤器表单

打开得很好,按钮正在切换他的文本,但我无法关闭(隐藏)过滤器表单。如果我再次单击该按钮,它将打开一个新的过滤器表单。

我希望有人可以帮助我。

如何在 C# 中执行由按钮控制的并排窗体

现在

,每次单击按钮时都会创建一个Form的新实例。

您需要创建一个FrmFilterSearch实例,并在按钮单击事件之外设置其位置一次,然后显示/隐藏相同的 Form。我建议使用构造函数:

FrmFilterSearch frmFilters = new FrmFilterSearch();
public YourConstructor()
{
    frmFilters.SetDesktopLocation(Location.X + Size.Width, Location.Y);
}
private void FilterButton_Click(object sender, EventArgs e)
{
    if (!Filters)
    {
        Filters = true;
        btn_show_filters.Text = "< Hide filters";
        frmFilters.Show();
    }
    else
    {
        Filters = false;
        btn_show_filters.Text = "Show filters >";
        frmFilters.Hide();
    }
}