J'ai un dtpEntry.Format = DateTimePickerFormat.Custom;
dtpEntry.CustomFormat = "dd/MM/yyyy hh:mm:ss";
dtpEntry.ShowUpDown = true;
6 Réponses :
Le problème est que la commande UP / DOWN augmente automatiquement ou diminue la partie actuellement mise en surbrillance du sélecteur de date / heure (I.E. Année / mois / jour / heure / etc.). P>
Vous êtes probablement mieux pour ajouter votre propre commande haut / bas (peut-être une très petite vscrollbar) immédiatement adjacente au sélecteur de date / heure et de le câblage jusqu'à l'incrémentation / décrémentation d'intervalles de cinq minutes à partir de la valeur du sélecteur de date / heure. < / p>
Il est possible en surveillant l'événement de valeurChageed et remplacer la valeur. Ce formulaire d'échantillon a bien fonctionné:
public partial class Form1 : Form { public Form1() { InitializeComponent(); dateTimePicker1.CustomFormat = "dd/MM/yyyy hh:mm"; dateTimePicker1.Format = DateTimePickerFormat.Custom; dateTimePicker1.ShowUpDown = true; dateTimePicker1.Value = DateTime.Now.Date.AddHours(DateTime.Now.Hour); mPrevDate = dateTimePicker1.Value; dateTimePicker1.ValueChanged += new EventHandler(dateTimePicker1_ValueChanged); } private DateTime mPrevDate; private bool mBusy; private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { if (!mBusy) { mBusy = true; DateTime dt = dateTimePicker1.Value; if ((dt.Minute * 60 + dt.Second) % 300 != 0) { TimeSpan diff = dt - mPrevDate; if (diff.Ticks < 0) dateTimePicker1.Value = mPrevDate.AddMinutes(-5); else dateTimePicker1.Value = mPrevDate.AddMinutes(5); } mBusy = false; } mPrevDate = dateTimePicker1.Value; } }
Cela a fonctionné parfaitement, tout ce que je devais faire était d'ajuster la valeur dans addminutes () code> pour mon cas et c'était littéralement brancher et jouer.
Je sais que c'est un ancien article, mais j'ai créé une meilleure solution à ce problème en fonction de la réponse ci-dessus.
dans la classe p> dans le constructeur p> p>
J'aime ta réponse sixothree, mais j'ai essayé de l'utiliser, et ça marche très bien, des œuvres comme un charme. Mais si vous y descendez une fois qu'il devient "00", cela commence à faire les heures de monter. J'essaie de trouver pourquoi comme nous parlons. Une fois que ce bogue unique est corrigé, je suis sûr que cela sera une fonctionnalité géniale.
Vous pouvez ajouter ce code avant p>
J'ai changé un peu la réponse de Sixothree, pour éliminer le bogue trouvé par Necromporph. Il devrait être ok comme ceci:
dans la classe p> dans le constructeur p> l'événement p>
ou simplement essayer ceci: