我想從另一種形式使用一些公共方法。我想知道是否有辦法做到這一點,我試圖公開的方法和形式,但是當我試圖將它稱爲另一種形式的方法時,它只是出現任何東西。如何使用其他形式的方法進入我的主表單?
這裏是我的主要形式有:
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()
}
但我不能,它只是找不到方法。
「我想使用其他表單的一些公共方法。」 - 不要這樣做,因爲儘管他們可能不會,但它會使你的表格依賴。如果一種方法是另一種形式,那麼它就屬於那裏。你可能想要做的是將該方法移到另一個地方(例如基類)。 –
我同意@Quality Catalyst的評論,並建議您接受他的答案 - 在這種情況下,基類想法是一個更好的解決方案。 – CoolBots
目前還不完全清楚你正在嘗試做什麼。但是有兩種明顯的可能性,並且都可以通過以前提出的問題得到很好的解決:https://stackoverflow.com/questions/1665533/communicate-between-two-windows-forms-in-c-sharp和https:/ /stackoverflow.com/questions/25394337/how-to-use-the-same-method-with-two-different-forms(如果@Quality發佈的答案解決了您的問題,那麼您的問題是第二個這些鏈接)。 –