ユーザーが DateTimePicker の [今日に移動] ボタンをクリックしたときにクリック イベントをキャプチャするにはどうすればよいですか?
ありがとう。
私はwin XPと.net 3.5を使用しています。コントロール自体と「今日」をクリックすると発生しますが、「今日」以外のドロップダウンカレンダーをクリックしても発生しません。コントロール自体をクリックしたときにイベントが発生するのを避けるために、return ステートメントを使用します。このイベントは、「今日」をクリックした場合にのみ実際の時間を設定します。残念ながら、win8ではマウスダウンイベントは発生しません...
private void dateTimePicker2_MouseDown(object sender, MouseEventArgs e)
{
Point pt = dateTimePicker2.Location;
Point mouse_pt = dateTimePicker2.Parent.PointToClient(Cursor.Position);
int diff_x = mouse_pt.X - pt.X;
int diff_y = mouse_pt.Y - pt.Y;
if (diff_y < dateTimePicker2.Size.Height || diff_x > dateTimePicker2.Size.Width )
return;
DateTime tim_cal = dateTimePicker2.Value;
DateTime now = DateTime.Now;
TimeSpan ts = new TimeSpan(now.Hour, now.Minute, now.Second);
tim_cal = tim_cal.Date + ts;
dateTimePicker2.Value = tim_cal;
}
Just handle the ValueChanged event of DateTimePicker Control and check if the selected date is today's date. Like this -
// ValueChanged Event
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
if (dateTimePicker1.Value.Date == DateTime.Now.Date)
{
MessageBox.Show("Hola !!");
}
}