C# 日期时间选择器验证

C# 日期时间选择器验证,c#,winforms,datetimepicker,C#,Winforms,Datetimepicker,我很抱歉发布这个问题,因为它可能会被所有人认为是愚蠢的,但我没有得到确切的解决办法 问题是:我的项目中有一个日期时间选择器,它位于表单中的3个文本框之后,如果文本框中没有输入文本,则在提交时输入,它会给出一条消息验证要输入的数据。同样,如果未选择日期,则应继续 用于此目的的代码是什么,适用于其他文本框而不适用于datetimepicker控件的代码是: if (dateInsert.Value.ToString() = string.Empty) {

我很抱歉发布这个问题,因为它可能会被所有人认为是愚蠢的,但我没有得到确切的解决办法

问题是:我的项目中有一个日期时间选择器,它位于表单中的3个文本框之后,如果文本框中没有输入文本,则在提交时输入,它会给出一条消息验证要输入的数据。同样,如果未选择日期,则应继续

用于此目的的代码是什么,适用于其他文本框而不适用于datetimepicker控件的代码是:

       if (dateInsert.Value.ToString() = string.Empty)
        {
            MessageBox.Show("Please select date!");
            dateInsert.Focus();
            return;
        }

如果您使用的是visual studio…..请使用此代码验证空文本框

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Display="None"
        ErrorMessage="Select Date" ControlToValidate="dateInsert" ValidationGroup="validation"> </asp:RequiredFieldValidator>

空DateTimePicker没有直接的解决方案。清空DateTimePicker的唯一方法是设置CustomFormat,然后将空白空间设置为值

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = " ";
即使执行此操作,控件中的值也将被清除,但如果在代码中访问控件的value属性,它将返回当前日期时间。所以你的条件总是错误的

//This is always false
dateInsert.Value.ToString() = string.Empty
解决方案

在条件中使用文本,而不是使用值

if(dateInsert.Text = " ")

请更正代码,看看它是否有效

               if (dateInsert.Value.ToString() == "")
              {
                MessageBox.Show("Please select date!");
                dateInsert.Focus();
                return;
               }

希望这对某人有所帮助

我会通过:DateTime\u temp;DateTime.TryParsedtPicker.Value.ToString,out\u temp;如果这是真的,那么DateTime是有效的。如果dateInsert.Value.ToString==string.Empty,请检查您的代码在放入==后是否工作。我正在用c为windows窗体编写代码。[链接]检查此项…它可能会帮助您…如果我使用您提供的代码,datetimepicker值将为null,我对此非常满意,但它只解决了一半问题,剩下的就是,尽管我没有选择提交日期,但如果我没有选择/更改日期,则不应提交该值。很抱歉造成混淆。@Karthikredy是否正在清除表单加载上的datetimepicker值?它最初的价值是什么?默认日期时间?是的,我只从表单加载中清除,得到的值是今天的日期。@Karthikredy所以当前日期无效?我的意思是用户只允许输入未来或过去的日期?是的,用户应该选择过去的日期。在用户选择日期之前,不应提交表单。谢谢你耐心地和我一起工作。
if(datepicker.Text == " ")
messagebox.show("Please Select Date");

// this works 100 %
if(datepicker.Text == " ")
messagebox.show("Please Select Date");

// this works 100 %