C# 从其他类调用时填充组合框

C# 从其他类调用时填充组合框,c#,asp.net,C#,Asp.net,我对C#非常陌生,从另一个类调用该方法时,填充组合框时遇到问题。我的消息来源是这样的 第一类 private void btn_login_Click(object sender, EventArgs e) { UserControl1 uc1 = new UserControl1(); uc1.fill_cbb(); } 第二类 public void fill_cbb() { cbb_table.Items.Add("Text1"); cbb_table.I

我对C#非常陌生,从另一个类调用该方法时,填充组合框时遇到问题。我的消息来源是这样的

第一类

private void btn_login_Click(object sender, EventArgs e)
{
    UserControl1 uc1 = new UserControl1();
    uc1.fill_cbb();
}
第二类

public void fill_cbb()
{
    cbb_table.Items.Add("Text1");
    cbb_table.Items.Add("Text2");
    cbb_table.SelectedIndex = 0;
}

当我这样做时,组合框是空的。

如果它是Asp,请注意事件IsPostBack

您的问题不是从另一个类调用该方法。我假设UserControl1是您的自定义用户控件,您提到的“类2”是UserControl1

代码将按原样工作,但您在该控件的错误实例上调用它

在btn\u login\u Click方法中,您正在生成一个全新的UserControl1实例。当然,您可以这样做,这就是为什么VisualStudio永远不会将其标记为错误,但uc1将不是实际位于表单中的控件

假设您在表单中将控件命名为“cbxOptions”。然后在按钮单击事件中,您必须写入

cbxOptions.fillu cbb()

相反,如果该组合框也是UserControl1类型。那它就可以正常工作了


警告,汽车类比:这就像你想在你的汽车上重新喷漆一样。然后你买了一辆同型号的新车,把它拿到油漆店,把它漆好,然后把它带到垃圾场,把它压碎。您的旧车当然仍会有相同的旧颜色。

有什么问题吗?这是winforms还是asp.net?我很抱歉,我保存它时还没有完成。组合框是空的。好的,正如Tim所说,这是ASP还是winforms?这是ASP。奇怪的是,当在public void UserControl1_Load()方法中调用代码时,组合框被填满了