using System;
using System.Collections .Generic ;
using System.Linq ;
using System.Text ;
using System.Threading .Tasks ;
using System.Drawing ;
using System.Windows .Forms ;
namespace WindowsFormsApp1
{
class NullableDateTimePicker : DateTimePicker
{
private DateTime? SavedValue { get; set; }
private DateTimePickerFormat SavedFormat { get; set; }
private string SavedCustomFormat { get; set; }
private bool IsNullValue { get; set; }
public NullableDateTimePicker( )
{
Format = DateTimePickerFormat.Custom ;
CustomFormat = "yyyy/MM/dd" ;
Value = DateTime.Now ;
Checked = true ;
IsNullValue = false ;
}
public new DateTime? Value { get; set; }
protected override void OnKeyDown( KeyEventArgs e)
{
base.OnKeyDown ( e) ;
if ( e.KeyCode == Keys.Delete )
{
if ( ! IsNullValue)
{
SavedValue = Value;
SavedFormat = Format;
SavedCustomFormat = CustomFormat;
Value = null ;
CustomFormat = " " ;
IsNullValue = true ;
}
}
else
{
if ( IsNullValue)
{
CustomFormat = "yyyy/MM/dd" ;
Format = SavedFormat;
Value = SavedValue;
IsNullValue = false ;
}
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBTeXN0ZW0uRHJhd2luZzsKdXNpbmcgU3lzdGVtLldpbmRvd3MuRm9ybXM7CgpuYW1lc3BhY2UgV2luZG93c0Zvcm1zQXBwMQp7CiAgICBjbGFzcyBOdWxsYWJsZURhdGVUaW1lUGlja2VyIDogRGF0ZVRpbWVQaWNrZXIKICAgIHsKICAgICAgICBwcml2YXRlIERhdGVUaW1lPyBTYXZlZFZhbHVlIHsgZ2V0OyBzZXQ7IH0KICAgICAgICBwcml2YXRlIERhdGVUaW1lUGlja2VyRm9ybWF0IFNhdmVkRm9ybWF0IHsgZ2V0OyBzZXQ7IH0KICAgICAgICBwcml2YXRlIHN0cmluZyBTYXZlZEN1c3RvbUZvcm1hdCB7IGdldDsgc2V0OyB9CiAgICAgICAgcHJpdmF0ZSBib29sIElzTnVsbFZhbHVlIHsgZ2V0OyBzZXQ7IH0KCiAgICAgICAgcHVibGljIE51bGxhYmxlRGF0ZVRpbWVQaWNrZXIoKQogICAgICAgIHsKICAgICAgICAgICAgRm9ybWF0ID0gRGF0ZVRpbWVQaWNrZXJGb3JtYXQuQ3VzdG9tOwogICAgICAgICAgICBDdXN0b21Gb3JtYXQgPSAieXl5eS9NTS9kZCI7CiAgICAgICAgICAgIFZhbHVlID0gRGF0ZVRpbWUuTm93OwogICAgICAgICAgICBDaGVja2VkID0gdHJ1ZTsKICAgICAgICAgICAgSXNOdWxsVmFsdWUgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBuZXcgRGF0ZVRpbWU/IFZhbHVlIHsgZ2V0OyBzZXQ7IH0KCiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgT25LZXlEb3duKEtleUV2ZW50QXJncyBlKQogICAgICAgIHsKICAgICAgICAgICAgYmFzZS5PbktleURvd24oZSk7CgogICAgICAgICAgICBpZihlLktleUNvZGUgPT0gS2V5cy5EZWxldGUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICghSXNOdWxsVmFsdWUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU2F2ZWRWYWx1ZSA9IFZhbHVlOwogICAgICAgICAgICAgICAgICAgIFNhdmVkRm9ybWF0ID0gRm9ybWF0OwogICAgICAgICAgICAgICAgICAgIFNhdmVkQ3VzdG9tRm9ybWF0ID0gQ3VzdG9tRm9ybWF0OwoKICAgICAgICAgICAgICAgICAgICBWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRm9ybWF0ID0gIiAiOwoKICAgICAgICAgICAgICAgICAgICBJc051bGxWYWx1ZSA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoSXNOdWxsVmFsdWUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRm9ybWF0ID0gInl5eXkvTU0vZGQiOwogICAgICAgICAgICAgICAgICAgIEZvcm1hdCA9IFNhdmVkRm9ybWF0OwogICAgICAgICAgICAgICAgICAgIFZhbHVlID0gU2F2ZWRWYWx1ZTsKCiAgICAgICAgICAgICAgICAgICAgSXNOdWxsVmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQ==
compilation info
prog.cs(7,22): error CS0234: The type or namespace name `Forms' does not exist in the namespace `System.Windows'. Are you missing `System.Windows.Forms' assembly reference?
prog.cs(11,36): error CS0246: The type or namespace name `DateTimePicker' could not be found. Are you missing an assembly reference?
prog.cs(14,17): error CS0246: The type or namespace name `DateTimePickerFormat' could not be found. Are you missing an assembly reference?
prog.cs(27,30): warning CS0109: The member `WindowsFormsApp1.NullableDateTimePicker.Value' does not hide an inherited member. The new keyword is not required
prog.cs(29,43): error CS0246: The type or namespace name `KeyEventArgs' could not be found. Are you missing an assembly reference?
Compilation failed: 4 error(s), 1 warnings
stdout