C# 设置 dateTimePicker控件初始值为空(转)
2021-01-19 16:13
标签:ring mat err cte 实现 ext 声明 date load 写在前面:在.net中让DateTimePicker显示一个空的时间值,也许是很容易的事情,但事实上,也不是很容易的,至少,没有经过努力的修改和重画 ,你是达不到的。在修改这个控件的时候,你又常常发现会有bug。下面介绍一个方法,至少源作者是经过研究的,没有发现多少问题。 源网址 效果图 源代码 this.Format = DateTimePickerFormat.Custom; 出处:小作坊网ChakMan C#日期控件datetimepicker保存空值方法 方法一(推荐): 设置datetimepicker的属性ShowCheckBox为true 在窗口初始化时候,添加代码this.datetimepicker1.Checked = false; 保存日期值入库的时候,就可以根据if(this.datetimepicker1.Checked ==false),保存空值。 方法二: 在窗口初始化函数中添加: 但是,这种写法有个问题,保存入库的时候,还要加一个判断if(this.dateTimePicker1.Text.toString()==""),保存空值;else 保存this.dateTimePicker1.value。 这种写法遇到个bug,一直没有解决,就是日期控件默认是空的,在第一次选择一个日期后必须失去焦点才能选择新的日期,不知道什么原因? 方法三: 在日期控件上面覆盖一个文本框,然后初始化时候文本框是空值,每次日期选择之后将值附在文本框里面。 转自:https://www.cnblogs.com/emanlee/archive/2009/07/26/1531308.html C# 设置 dateTimePicker控件初始值为空(转) 标签:ring mat err cte 实现 ext 声明 date load 原文地址:https://www.cnblogs.com/kelly1314/p/12155855.html
http://www.codeproject.com/KB/selection/Nullable_DateTimePicker.aspx
你可以在上述的网址找到源代码和英文的说明。
下图中,你只要按一下Delete键就可以将DateTimePicker的值设置为空,实际的值是DateTime.MinValue,这一个简单的效果,也许是很多程序员想看到。不过学习一下这个控件。
最重要的两个重载方法是下面俩。
protected override void OnCloseUp(EventArgs eventargs)
protected override void OnKeyDown(KeyEventArgs e)
DateTimePicker本身是支持自定义格式的,DateTimePickerFormat.Custom,就是声明使用自定义格式的。
public new DateTime Value
{
get
{
if (bIsNull)
return DateTime.MinValue;
else
return base.Value;
}
set
{
if (value == DateTime.MinValue)
{
if (bIsNull == false)
{
oldFormat = this.Format;
oldCustomFormat = this.CustomFormat;
bIsNull = true;
}
this.CustomFormat = " ";
}
else
{
if (bIsNull)
{
this.Format = oldFormat;
this.CustomFormat = oldCustomFormat;
bIsNull = false;
}
base.Value = value;
}
}
}
this.dateTimePicker1.Format=DateTimePickerFormat.Custom;
this.dateTimePicker1.CustomFormat=" ";
在日期改变事件里写:
private void dateTimePicker1_ValueChanged(object sender, System.EventArgs e)
{
this.dateTimePicker1.Format=DateTimePickerFormat.Long;
this.dateTimePicker1.CustomFormat=null;
}
这样就实现了,在程序初始化时dateTimePicker显示为空
上一篇:c# 8.0
下一篇:C#语法——委托,架构的血液
文章标题:C# 设置 dateTimePicker控件初始值为空(转)
文章链接:http://soscw.com/index.php/essay/44128.html