Como validar .NET diálogo itens ao usar DialogResult automática?
Pergunta
No momento eu tenho a configuração um ok costume cancelar diálogo com uma drop down no c #. O botões OK e Cancelar usar a propriedade DialogResult de modo nenhum código por trás dele. O que eu agora precisa fazer é validar o drop down para verificar se não for deixado vazio antes de postar de volta um DialogResult.
Isso é possível?
Solução
A partir aqui
Clique duas vezes no campo de Encerramento, e implementá-lo da seguinte forma:
private void Second_Closing(object sender,
System.ComponentModel.CancelEventArgs e)
{
// When the user attempts to close the form, don't close it...
e.Cancel = (dropdown.selecteditemindex >= 0);
}
Outras dicas
Desativar botão seu OK até que a caixa de combinação é alterada para um valor válido.
Se você quiser cheque para alguma coisa, você allways precisa de algum código por trás do designer. Para o seu caso, você pode usar um "Fechar" evento na forma, verifique o que você precisa e se você quiser, set "e.Cancel = true;" -., Em seguida, formulário não será fechado
O que eu fiz para isso é não definir o DialogResult no botão OK, mas colocar algum código por trás do botão.
private void OkButton_Clicked(object sender, EventArgs e)
{
this.DialogResult = ValueComboBox.SelectedIndex >= 0
? DialogResult.Ok
: DialogResult.None;
}
Você pode continuar usando o OK e Cancelar funcionalidade do botão de diálogos, e, em seguida, colocar esse código no manipulador clicado para o botão OK:
private void OkButton_Clicked(object sender, EventArgs e)
{
if (!IsValid()) {
this.DialogResult = System.Windows.Forms.DialogResult.None;
}
}
No código acima, IsValid()
é um método que você tem de implementar, que valida os campos de entrada na caixa de diálogo.