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