c# - 如何限制 Winforms MaskedTextbox 中的值

标签 c# .net winforms

我的要求是用户将在屏蔽的文本框中输入一个时间(“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/

相关文章:

c# - 我应该使用列表吗?

C# 进度条直到完成一半才更新

.net - .NET 中是否有一组适用于 FFMpeg、libavutil、libavformat 和 libavcodec 的有效 P/Invoke 声明?

azure - 使用 Azure SignalR 服务连接到 SignalR Hub

C# Winforms : programatically display Button's Hover State

c# - IEnumerable 的随机顺序

c# - 在表单上绑定(bind)多个ComboBox C#

c# - 使用 cx_freeze 进行精细编译后出现 "import clr"问题

c# - 这是什么意思?

c# - 获取表格的矩形