0

我有两种形式:

  • 首先是loginform,其中包含combobox1该用户将选择的
  • 然后是主窗体,它将在中显示combobox1所选label1项目loginform

我试过了 :

label1.Text = "welcome, "+ (new formlogin()).comboBox1.selectedItems.ToString();

,但我收到一条消息错误:

Unhandled exception has occurred in your application.
4

3 回答 3

2

有很多方法可以做到这一点......但这是我能想到的最简单的方法:

将此属性添加到您的 FormMain 中:

public string UserName { get; set; }

然后,在 FormMain 的加载事件中:

label1.Text = this.UserName;

然后,当您显示 MainForm 时,从您的 FormLogin 中:

FormMain form = new FormMain();
form.UserName = combobox1.selectedItems.ToString();
form.Show();
于 2013-05-14T20:33:49.673 回答
0

好的,截图中的错误信息说

你调用的对象是空的。

这意味着您正在尝试使用未经证实的对象


很可能是您的formlogin构造函数实际上并未实例化combobox1.selectedItems,从而导致错误。

但我认为你可能想要做的是以下

label1.Text = "welcome, "+ this.comboBox1.selectedItems.ToString();
于 2013-05-14T20:50:08.303 回答
0

我是这样做的:

在您的主表单中,您首先声明 loginForm 并显示它:

formlogin logForm = new formlogin();
logForm.FormClosing += loginFormClosing;
logForm.ShowDialog();

然后声明一个新方法

public void loginFormClosing()
{
  //This method will be called when the loginform is closing
  //declare a variable in your loginform class and call it here like:

  label1.Text =  "welcome, "+ logForm.selectedItem.ToString();
}

我确信有更好、更聪明的方法来做到这一点。但这就是我的做法。

于 2013-05-14T21:22:24.153 回答