首页 > 解决方案 > 想从 2 个按钮打开相同的表单,但每个按钮都可以打开一次

问题描述

如果我从按钮 1 打开表单显示客户,如果我从按钮 2 打开表单显示供应商,我有显示客户和供应商的表单

这里的问题我想为每个按钮打开表单 1 次我制作了这段代码,但第一次它只适用于第一个打开的表单,另一个按钮打开的次数与我单击按钮一样多

if (Application.OpenForms[frm.Name] != null)
                    {
                        if (Application.OpenForms[frm.Name].Text == e.Item.Caption)
                        {
                            frm = Application.OpenForms[frm.Name];
                            frm.BringToFront();
                        }
                        else
                        {
                            frm.Show();
                        }
                    }
                    else
                        frm.Show();

标签: c#

解决方案


好的,这是包含按钮的表单的代码。我只是把它叫做Form1。

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

private void btnCustomer_Click(object sender, EventArgs e)
{
    btnCustomer.Enabled = false;

    CustomerVendorForm form = new CustomerVendorForm(btnCustomer);
    form.Show();
}

private void btnVendor_Click(object sender, EventArgs e)
{
    btnVendor.Enabled = false;

    CustomerVendorForm form = new CustomerVendorForm(btnVendor);
    form.Show();
}

这是 CustomerVendor 表格:

public partial class CustomerVendorForm : Form
{

Button Form1Button;

public CustomerVendorForm(Button button)
{
    InitializeComponent();

    Form1Button = button;
}

private void CustomerVendorForm_FormClosed(object sender, FormClosedEventArgs e)
{
    Form1Button.Enabled = true;
}

所以我们禁用了他们点击的按钮。打开表单,传递按钮。当用户关闭表单时,按钮会重新启用。

那有意义吗?


推荐阅读