У меня есть кнопка на пользовательском элементе управления, которая по умолчанию не включена. Когда событие происходит в форме, я хочу, чтобы он мог включить кнопку. Я установил кнопку в основной форме, чтобы проверить это, и, похоже, она активирует кнопку 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 для формы входа:
public partial class Login : UserControl
{
public bool loginEnabled
{
get { return ucBtn.Enabled; }
set { ucBtn.Enabled = value; }
}
}
Что странно, если я нажимаю форму button1, он будет говорить "Ложь", если я нажму он снова скажет «True», указывая, что делает изменение значения кнопки UC, но в приложении оно остается отключенным.
попробуйте вызвать 'Application.DoEvents()' после изменения значения 'ucBtn.Enabled' –
@FelixD. https://blogs.msdn.microsoft.com/jfoscoding/2005/08/06/keeping-your-ui-responsive-and-the-dangers-of-application-doevents/ plz не просто предлагают Application.DoEvents без упомянув об опасности – Steve
@ Попробуйте это мне как «проблема начинающих» (без обид), поэтому я просто сохранил ее просто. –