gpt4 book ai didi

c# - 如何将其他窗体的方法使用到我的主窗体中?

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:41 26 4
gpt4 key购买 nike

我想使用其他表单的一些公共(public)方法。我想知道是否有办法做到这一点,我试图将方法和表单公开,但是当我尝试将它调用到另一种形式的方法时,它什么也没有出现。

这是我的主要形式:

namespace GUI
{
public partial class frmPrincipal : Form
{
public frmPrincipal()
{
InitializeComponent();
}

private void categoriaToolStripMenuItem_Click(object sender, EventArgs e)
{
frmCadastroCategoria f = new frmCadastroCategoria();
f.ShowDialog();
f.Dispose();
}

private void categoriaToolStripMenuItem1_Click(object sender, EventArgs e)
{
frmConsultaCategoria f = new frmConsultaCategoria();
f.ShowDialog();
f.Dispose();
}

这是我尝试调用的形式

    public void LocalizarCategoria()
{
frmConsultaCategoria f = new frmConsultaCategoria();
f.ShowDialog();
if (f.codigo != 0)
{
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLCategoria bll = new BLLCategoria(cx);
ModeloCategoria modelo = bll.CarregaModeloCategoria(f.codigo);
txtCodigo.Text = modelo.CatCod.ToString();
txtNome.Text = modelo.CatNome;
alteraBotoes(3);
}
else
{
this.LimpaTela();
this.alteraBotoes(1);
}
f.Dispose();
}

我正在尝试做类似的事情:

    {
LocalizarCategoria()
}

但我不能,它只是找不到方法。

最佳答案

不要调用该方法,因为它会使您的表单在不必要时依赖。如果一个方法是另一种形式,那么它属于那里是有原因的。

您可能想要做的是将方法移动到另一个地方(例如基类)。

例子:

public partial class frmPrincipal : MyFormBase // inherit from your own base
{
...
}

public partial class frmMyOtherForm : MyFormBase // inherit from your own base
{
...
}

public class MyFormBase : Form // your own base with the to be shared method
{
protected void LocalizarCategoria() // protected might be enough
{
...
}
}

关于c# - 如何将其他窗体的方法使用到我的主窗体中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37198853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com