我的要求是用户将在屏蔽的文本框中输入一个时间(“HH:mm:ss”),并根据该时间执行一些功能。我的问题是我可以屏蔽时间,但我不能限制用户最多输入 23 小时,59 分钟和 59 秒。 如何解决这个问题。
C#代码
private void Form1_Load(object sender, EventArgs e)
{
maskTxtAlert1.Mask = "00:00:00";
maskTxtAlert1.CutCopyMaskFormat = MaskFormat.ExcludePromptAndLiterals;
}
private void maskTxtAlert1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
{
if (e.Position == maskTxtAlert1.Mask.Length)
{
string errorMessage = "You cannot add extra characters";
toolTip1.ToolTipTitle = "Input Rejected - No more inputs allowed";
toolTip1.Show(errorMessage, maskTxtAlert1, 12, 24, 2000);
errorProvider1.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;
errorProvider1.SetError(maskTxtAlert1, errorMessage);
}
else
{
toolTip1.ToolTipTitle = "Input Rejected";
string errorMessage = "You can only add numeric characters (0-9).";
toolTip1.Show(errorMessage, maskTxtAlert1, 12, 24, 2000);
errorProvider1.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;
errorProvider1.SetError(maskTxtAlert1, errorMessage);
}
}
private void maskTxtAlert1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
MessageBox.Show("Enter Valid as One");
}
最佳答案
我认为最好像 tezzo 所说的那样使用 DateTimePicker,并且不需要验证
dateTimePicker1.Format = DateTimePickerFormat.Custom;
//For 24 H format
dateTimePicker1.CustomFormat = "HH:mm:ss";
//For 12 H format
dateTimePicker1.CustomFormat = "hh:mm:ss tt";
dateTimePicker1.ShowUpDown = true;
关于c# - 如何限制 Winforms MaskedTextbox 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17564882/