在我的program.cs中我有这个:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
String user = null;
using (var login = new loginForm())
{
user = login.returnUser();
if (login.ShowDialog() != DialogResult.OK) return;
}
Application.Run(new Form1(user));
}
我正在尝试从loginForm中获取一个字符串,然后将其发送到Form1。 但字符串没有返回任何内容..
这是“login.returnUser();”
public string returnUser()
{
String user = usernameText.Text;
return user;
}
这应该正常吗?
答案 0 :(得分:4)
在显示对话框之前,您正在调用returnUser()
你怎么期望它有价值?
您只想在用户输入内容后执行该操作。
答案 1 :(得分:0)
在ShowDialog
之后获取用户:
using (var login = new loginForm())
{
// user = login.returnUser(); <-- Too soon
if (login.ShowDialog() != DialogResult.OK) return;
user = login.returnUser();
}
ShowDialog
是导致对话框显示的原因。当用户单击要登录的按钮时,该方法将返回,您的usernameText
文本框现在应该具有值。
答案 2 :(得分:0)
获取用户显示对话框()。
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
String user = null;
using (var login = new loginForm())
{
bool invalid = login.ShowDialog() != DialogResult.OK;
user = login.returnUser();
if(invalid)
return;
}
Application.Run(new Form1(user));
}