2015-05-03 4 views
-1

Привет всем, кто в настоящее время пытается запустить оператор IF в C# WinForms, который проверяет, были ли завершены два маскированных текстовых поля, и в этом случае пользователю появится кнопка. Это мой код:Masked Textbox C# Winforms Empty If Statment Not Working?

if (maskedTextBox1.MaskFull && maskedTextBox2.MaskFull) 
{ 
    button4.Visible = true; 
} 
else 
{ 
    button4.Visible = false; 
} 

Когда я запускаю мое приложение видимость кнопки все еще оставаясь скрытыми даже тогда, когда мои Замаскированные Textboxes были завершены/полностью заполненными Кто-нибудь знает, почему это происходит.?

+0

где вы положили оператор if? –

+0

Его под метод компонента Initialize, как я хочу, чтобы он запускался при запуске форм, выглядит так: InitializeComponent(); if (maskedTextBox1.MaskFull && maskedTextBox2.MaskFull) { button4.Visible = true; } – at541

+0

Вам нужно поместить инструкцию в событие TextChanged из MaskedTextBox, чтобы она выполнялась всякий раз, когда пользователь меняет текст ввода. –

ответ

0

Во-первых, вы можете быть намного короче: button4.Visible = (maskedTextBox1.MaskFull && maskedTextBox2.MaskFull);.
Во-вторых, вы уверены, что вам нужно MaskFull, а не MaskCompleted?

+0

Хорошо, я просто поместил оператор IF в маскированный текстовый ящик, например, предложенный mehrzad, но когда я теперь запускаю свое приложение, кнопка появляется, когда форма загружается, но затем исчезает, когда что-либо записывается в маскированные текстовые поля. Мой код сейчас выглядит так: частный недействительным (отправитель объекта, EventArgs е) maskedTextBox1_TextChanged { если (maskedTextBox1.MaskCompleted && maskedTextBox2.MaskCompleted) { button4.Visible = истина; } прочее { button4.Visible = false; } } – at541

+0

Если вы не хотите, чтобы кнопка отображалась при загрузке формы, вы можете установить видимость на false в конструкторе. –

+0

Извините, что я имел в виду «замаскированное текстовое поле с измененным текстом, например, mehzad предложил» – at541