У меня есть собственное текстовое поле, для которого я выполняю проверку, переопределяя метод OnValidating
.В рамках проверки я использую окно сообщения, чтобы дать обратную связь с пользователем.
После отображения окна сообщения я установил e.Cancel = true
.Это работает, но текстовое поле больше не имеет курсора.Он имеет фокус, и если вы вводите элемент управления, он все еще работает, но курсор никогда не отображается.Даже если вы нажмете в текстовом поле, курсор больше не будет отображаться.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public class txtExample:TextBox
{
protected override void OnValidating(CancelEventArgs e)
{
if (SomeValidationCode() == false)
{
MessageBox.Show("Validatioon Failed");
e.Cancel = true;
return;
}
base.OnValidating(e);
}
private bool SomeValidationCode()
{
return false;
}
}
}