C# Winforms DateTimePicker 自定义格式化为十分之一秒/默认选择为秒
C# Winforms DateTimePicker Custom Formatted to Tenths of a Second / Default Selection to Seconds
我的应用程序当前使用 DateTimePicker 自定义格式来显示 HH:mm:ss。
如何格式化它以允许十分之一秒?
我的第二个问题是,当我进入日期时间选择器时,默认情况下首先选择“小时”部分,是否可以更改此设置以便默认首先选择秒?我注意到,如果您单击上下箭头而不用 Tab 键进入控件,则默认情况下会选择秒部分。
有日期时间选择器方面的专家吗?或者有人对我可以用来实现这些功能的替代方案有想法吗?
下面是它的格式和属性的图片:
这可行
添加 DomainUpDown 控件
添加一组相差 0.1 秒的日期时间,并将它们显示为格式化为显示毫秒的字符串。然后您的用户可以上下点击以查看 0.1 秒的增量
string dateString = "7/9/2015 9:32:45.126 AM";
DateTime dateValue = DateTime.Parse(dateString);
for (int i = 0; i < 5; i++)
{
dtPicker.Items.Add(dateValue.AddSeconds(.1*i).ToString("MM/dd/yyyy hh:mm:ss.fff tt"));
}
如果您想让用户先选择小时,然后从那里生成您的日期时间增量,它也不会起作用。您可以创建多个数字控件,但此时您可能想要沿着扩展日期时间选择器的路径前进,例如 here.
您可以尝试强制 DateTimePicker
显示毫秒,但这将是一个痛苦的经历。你最好使用 MaskedTextBox
。您可以从 sourceforge 下载 TimePicker.cs:https://sourceforge.net/projects/time-picker/
下面是一些示例代码:
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Form f = new Form();
var dp = new TimePicker("hh:mm:ss.f", true) { Location = new Point(100, 100) };
dp.ByValue[2] = false;
f.Controls.Add(dp);
var bt1 = new Button { Text = "Now", Location = new Point(110, 130) };
bt1.Click += delegate {
dp.Value = DateTime.Now;
};
int k = 0;
dp.ValueChanged += delegate {
bt1.Text = "Now " + (k++);
};
f.Controls.Add(bt1);
Application.Run(f);
}
我的应用程序当前使用 DateTimePicker 自定义格式来显示 HH:mm:ss。
如何格式化它以允许十分之一秒? 我的第二个问题是,当我进入日期时间选择器时,默认情况下首先选择“小时”部分,是否可以更改此设置以便默认首先选择秒?我注意到,如果您单击上下箭头而不用 Tab 键进入控件,则默认情况下会选择秒部分。
有日期时间选择器方面的专家吗?或者有人对我可以用来实现这些功能的替代方案有想法吗?
下面是它的格式和属性的图片:
这可行
添加 DomainUpDown 控件
添加一组相差 0.1 秒的日期时间,并将它们显示为格式化为显示毫秒的字符串。然后您的用户可以上下点击以查看 0.1 秒的增量
string dateString = "7/9/2015 9:32:45.126 AM"; DateTime dateValue = DateTime.Parse(dateString); for (int i = 0; i < 5; i++) { dtPicker.Items.Add(dateValue.AddSeconds(.1*i).ToString("MM/dd/yyyy hh:mm:ss.fff tt")); }
如果您想让用户先选择小时,然后从那里生成您的日期时间增量,它也不会起作用。您可以创建多个数字控件,但此时您可能想要沿着扩展日期时间选择器的路径前进,例如 here.
您可以尝试强制 DateTimePicker
显示毫秒,但这将是一个痛苦的经历。你最好使用 MaskedTextBox
。您可以从 sourceforge 下载 TimePicker.cs:https://sourceforge.net/projects/time-picker/
下面是一些示例代码:
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Form f = new Form();
var dp = new TimePicker("hh:mm:ss.f", true) { Location = new Point(100, 100) };
dp.ByValue[2] = false;
f.Controls.Add(dp);
var bt1 = new Button { Text = "Now", Location = new Point(110, 130) };
bt1.Click += delegate {
dp.Value = DateTime.Now;
};
int k = 0;
dp.ValueChanged += delegate {
bt1.Text = "Now " + (k++);
};
f.Controls.Add(bt1);
Application.Run(f);
}