【发布时间】:2017-01-05 20:06:41
【问题描述】:
我在用户控件上有一个按钮,默认情况下未启用。当表单上发生事件时,我希望它能够启用按钮。我在主窗体上设置了一个按钮来测试它,它似乎将 UC 按钮设置为启用,但它在应用程序中似乎没有启用。
public partial class Form1 : Form
{
public Login ucLogin = new Login();
private void button1_Click(object sender, EventArgs e)
{
if (ucLogin.loginEnabled)
{
MessageBox.Show("True");
}
else
{
MessageBox.Show("False");
ucLogin.loginEnabled = true;
}
}
}
Form.cs
在登录表单的用户控件中:
public partial class Login : UserControl
{
public bool loginEnabled
{
get { return ucBtn.Enabled; }
set { ucBtn.Enabled = value; }
}
}
奇怪的是,如果我点击Form button1,它会说“False”,如果我再次点击它,它会说“True”,说明它确实改变了UC的值按钮,但在应用程序上,它仍然处于禁用状态。
【问题讨论】:
-
在更改
ucBtn.Enabled的值后尝试调用Application.DoEvents() -
@FelixD。 blogs.msdn.microsoft.com/jfoscoding/2005/08/06/… 请不要只建议 Application.DoEvents 而不提及危险
-
@Steve 这在我看来像是一个“初学者问题”(无意冒犯),所以我保持简单。
-
@FelixD。仍然。应该警告某人可能会产生严重后果的事情。就像你永远不应该教初学者用字符串连接构造 Sql
-
@Steve 是的。你是对的 - 我的错。所以谢谢你指出来!
标签: c# winforms events user-controls