Por que o valor inválido está sendo jogado?
-
23-09-2019 - |
Pergunta
Eu tenho um TextEdit do DevExPress, que é um banco de dados para um conjunto de dados.
O campo é uma porcentagem opcional (Datatype Double).
Quando o registro é carregado e não há valor no campo, está tudo bem.
No entanto, se você digitar algo no campo (ou seja, 100) e, em seguida, desejar removê -lo depois, recebo um valor inválido, erro.
Por que isso ocorre e como posso removê -lo?
Não tenho nenhuma máscara ou nenhum tipo de validação explícita neste campo.
Solução
Eu resolvi isso com a assistência de Brendon Muck nos fóruns do Devexpress.
Um dos meus textos estava vinculado à propriedade de texto em vez do editValue (tudo deve estar vinculado ao EditValue)
Além disso, por Brendon
Excluir o texto do controle de texto não define o campo como NULL. Você teria que lidar com o evento EditValuechanged e definir manualmente o valor como nulo quando uma string vazia for detectada.
Então, eu criei o método para lidar com isso
Private Sub SetTextEditToNull(ByVal sender As TextEdit)
If String.IsNullOrEmpty(sender.EditValue.ToString.Trim()) And (Not sender.EditValue Is DBNull.Value) Then
sender.EditValue = DBNull.Value
End If
End Sub
E no meu manipulador de eventos, eu uso:
SetTextEditToNull(CType(sender, TextEdit))