사용자 정의 컨트롤에 기본적으로 활성화되어 있지 않은 단추가 있습니다. 양식에서 이벤트가 발생하면 버튼을 활성화 할 수 있기를 원합니다. 이것을 테스트하기 위해 메인 폼에 버튼을 설정했는데 UC 버튼을 활성화로 설정 한 것으로 보이지만 응용 프로그램에서는 활성화되어 있지 않습니다.양식 요소를 사용하여 UserControls와 상호 작용
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
그리고 로그인 폼의 UserControl을에서
: 나는 양식 Button1을 클릭하면 내가 클릭하면, 그것은, "거짓"말할 것입니다 이상한 무엇public partial class Login : UserControl
{
public bool loginEnabled
{
get { return ucBtn.Enabled; }
set { ucBtn.Enabled = value; }
}
}
다시 "true"라고 말하면 은이 UC 버튼의 값을 변경하지만 응용 프로그램에서는 비활성화 된 상태로 남아 있음을 나타냅니다.
'ucBtn.Enabled'의 값을 변경 한 후에'Application.DoEvents()'를 호출하십시오 –
@FelixD. https://blogs.msdn.microsoft.com/jfoscoding/2005/08/06/keeping-your-ui-responsive-and-the-dangers-of-application-doevents/plz 그냥 Application.DoEvents를 제안하지 말고 위험을 언급 – Steve
@ 스티브 이것은 '초보자 문제'(불쾌감)를 좋아하는 것처럼 보였으므로 간단하게 유지했습니다. –