DatetimePicker 作为vs自带控件,它的功能还是挺好的,为我们提供了很大的方便。但是,用这个控件时,如果为了操作上方便会出现一些小问题,比如:如何判断当前选中的是年还是月、日。对于这个问题可以用一些笨方法解决。
实现功能: DatetimePicker 显示为 年/月/日, 按Enter键自动跳转,到日后 焦点移动到其他控件
对于Enter键实现年月日间的切换大家很容易想到,那就是用控件自带的功能: 当按下 left,right 键时左右切换。
if(e.KeyChar==13)
{
SendKeys.Send("{right}");
}
这样就可以实现年月日的切换。
下面是实现到“日”(最后的内容)后,将焦点转移到其他控件
方法也类似。首先,用控件自带的功能: 当按下 up,down 键时值的变化,这样在ValueChange事件中判断变化的是哪一部分,如果是日在改变,焦点转移。
具体一看代码便明白:
if(e.KeyChar==13)
{
SendKeys.Send("{right}");
SendKeys.Send("{up}");//
SendKeys.Send("{down}");//来回切换不会改变原值,由它触发ValueChange事件
if(IsDayChange)
{
IsDayChange=false;
SendKeys.Send("{tab}");
}
}
private void dateTimePicker1_ValueChanged(object sender, System.EventArgs e)
{
if(dateTimePicker1.Value.Day != CurrentDay)
{
IsDayChange=true;
}
CurrentDay= dateTimePicker1.Value.Day;
}
这样就OK了。CurrentDay,IsDayChange是两个全局变量。 还有一些问题,那就根据情况,自己对应了。
DatetimePicker 作为vs自带控件,它的功能还是挺好的,为我们提供了很大的方便。但是,用这个控件时,如果为了操作上方便会出现一些小问题,比如:如何判断当前选中的是年还是月、日。对于这个问题可以用一些笨方法解决。 实现功能: DatetimePicker 显示为 年/月/日, 按Enter键自动跳转,到日后 焦点移动到其他控件
HANDLE hOut; //新建句柄 hOut
hOut=GetStdHandle(STD_OUTPUT_HANDLE); //实例化句柄 hOut
COORD pos={0,0};
//COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标。
int i;
Set...
有些软件的
时
效性比较强,首先需要进行的是修改
DateTimePicker
控件上的“天”,通过下拉表进行选择的话并不算方便,直接
输入
又需从年切换至月再切换至
日
,如此太麻烦,能把
焦点
直接定位到
日
上就方便多了。(注意TabIndex对
焦点
的影响)
普通情况下:
Code1:
private void FormMain_Load(object sender, EventArgs e)
DateTimePicker
是一种能够直观显示短
日
期/
时
间的控件,我想在Win32工程下,只利用API函数来使用它,以下为自己的使用方法总结:
前提:已经利用可视化界面直接拖放一个
DateTimePicker
控件在对话框指定的
位置
,然后设置ID名为IDC_
DATETIMEPICKER
1;
1、
获取
DTP上的
时
间
为了
获取
当前
显示的
时
间(注:在创建控件后不添加任何代码运行的话,DTP会
首先需要将
dateTimePicker
2的format设定为time格式,然后再form_load中初始化:
private void Form1_Load(object sender, EventArgs e)
//-----------------------------
datetimepicker
位置
pickerPosition 有以下几个属性值,望文生义不解释
$(’.form_datetime’).
datetimepicker
({
pickerPosition: ‘botom-left’,
pickerPosition: ‘bottom-right’,
pickerPosition: ‘top-left’,
pickerPosition: ‘to...
在Form3窗体加入如下代码控制月份的显示(本例为只显示本月和下个月份
时
间):
private void Form3_Load(object sender, EventArgs e)
this.
dateTimePicker
1.Value = DateTime.Tod
无聊的
时
候 会做出无聊的事情, 项目中使用
DateTimePicker
控件
时
有客户提出能不能随鼠标上下滚动
时
改变
DateTimePicker
控件对应的值,
本人当
时
就想出如下方案:
方案一:
获取
鼠标
焦点
停在
DateTimePicker
控件具体
位置
(年、月、
日
|
时
、分、秒) , 那问题就可以很容易解决。
如果对应停靠在“年”上,那么我上下滚动
时
就可通过
日
期函
你可以使用 WinForms 中的
DateTimePicker
控件来选择年、月、
日
、小
时
、分钟和秒。以下是一个示例代码,展示了如何设置
DateTimePicker
控件以选择完整的
日
期和
时
间:
```csharp
using System;
using System.Windows.Forms;
namespace
DateTimePicker
Example
public partial class MainForm : Form
public MainForm()
InitializeComponent();
private void MainForm_Load(object sender, EventArgs e)
// 设置
DateTimePicker
控件的格式为自定义格式,包含年、月、
日
、
时
、分和秒
dateTimePicker
1.Format =
DateTimePicker
Format.Custom;
dateTimePicker
1.CustomFormat = "yyyy-MM-dd HH:mm:ss";
private void
dateTimePicker
1_ValueChanged(object sender, EventArgs e)
// 当
DateTimePicker
的值发生变化
时
,可以通过 Value 属性
获取
选择的
日
期和
时
间
DateTime selectedDateTime =
dateTimePicker
1.Value;
MessageBox.Show(selectedDateTime.ToString());
在上述示例中,我们通过设置
DateTimePicker
的 Format 属性为 Custom,并指定 CustomFormat 属性的值为 "yyyy-MM-dd HH:mm:ss",来定义
DateTimePicker
控件的显示格式。然后,可以通过 ValueChanged 事件来
获取
用户选择的
日
期和
时
间。
希望这可以帮助到你!如果你还有其他问题,请随
时
提问。