Question

Je construis un formulaire avec WinForms - et devrait ajouter une vue et de la valeur de laps de temps modifiable. Qui contrôle fonctionne le mieux pour cela?

Un contrôle d'édition normale montre correctement la valeur -> mais ce n'est pas vraiment agréable pour changer les valeurs

le sélecteur de date heure normale ne fonctionne pas

le contrôle d'édition masqué ne n'ai pas de masque standard pour ce

Quelqu'un at-il une bonne idée pour un contrôle pour cette tâche?

Était-ce utile?

La solution 4

Pour un autre projet que je devais modifier un laps de temps aussi.

Je l'ai finalement utilisé 3 numérique haut / bas contrôles: les premiers contrôles des heures au total, la seconde les minutes et les secondes la troisième

.
//Setting the values
durationHours.Value = (Decimal)Math.Floor (data.TotalHours);
durationMin.Value = data.Minutes;
durationSeconds.Value = data.Seconds;

//Getting the values
data = new TimeSpan((int)durationHours.Value, (int)durationMin.Value, (int)durationSeconds.Value);

Autres conseils

Je construit un qui avait un TextBox couplé à un ComboBox de choisir les unités. Le contrôle utilisateur avait réglages de plage (valeur + -) et (unités de temps). Sur la base des unités cueillies, la zone de texte a été vérifié à distance -. Par exemple, 1-7 jours peut-être valide, mais si les unités étaient minutes, 1-60 minutes peut-être mieux

Je l'ai fait des combinaisons de deux ComboBoxes un NumericUpDown ainsi.

Si vous avez besoin des intervalles de temps qui sont des choses comme 3 jours 4 heures 6 minutes, je serais probablement opter pour un contrôle utilisateur avec zone de texte masqué et RANGE vérifier les pièces.

En général, j'opte pour la première, cependant.

Juste mes deux cents.

Utilisez le TimeSpan Helper, qui comprend un contrôle simple (qui n'a pas été documenté trop bien quand je il).

Utilisez une zone de texte normale, associée à un contrôle du fournisseur d'erreur qui vérifie la valeur à l'aide TimeSpan.TryParse () et une info-bulle pour suggérer ce genre de données que vous vous attendez.

Si vous voulez, vous pouvez combiner tout cela en un seul contrôle personnalisé, ainsi.

Si vous cherchez une apparence de code de travail sur le lien ci-dessous.

Ce billet de blog fournit le code source pour un contrôle utilisateur WPF pour sélectionner un intervalle de temps.

Essayez aussi cette TimeSpanPicker

Si vous n'avez pas besoin veulent permettre à plus de 24 heures et que vous ne souhaitez pas spécifier millisecondes Je pense que le sélecteur de DateTime fonctionne le mieux, surtout si vous créez un contrôle utilisateur pour en faire un sélecteur de TimeSpan.

La bonne chose est que vous pouvez UPDOWN les heures / minutes / secondes. Il vous empêche automatiquement de définir un temps de plus de 60 minutes / secondes. L'inconvénient:. Pas de millisecondes et pas de temps plus d'un jour

En studio développeur ajouter un nouveau contrôle utilisateur: TimePicker. Sur le contrôle de l'utilisateur mis un sélecteur de DateTime. Modifier les propriétés:

  • Format: Temps; cela fait que vous ne voyez que le temps (secondes) jusqu'à 24 heures
  • ShowUpDown: Vrai: cela fait que vous ne pouvez pas ouvrir un calendrier. Vous aurez un haut-bas pour les heures / minutes / secondes.

Le format de temps localisé est utilisé. Si vous voulez un format de temps spécifique utiliser le format horaire personnalisé.

Réagissez sur l'événement validé pour lire la valeur en tant que DateTime et soustraire si de minuit au début du même jour. Le résultat sera un TimeSpan. Retour cette valeur dans Valug.Get. Value.Set:. Ajouter le DateTime de minuit aujourd'hui au TimeSpan pour définir

Si vous avez besoin de plus de 24 heures, ou si vous voulez ajouter millisecondes, ajouter une zone de texte et utiliser la validation et TryParse. Cela permettra même aux utilisateurs de tiques utilisés au lieu d'un notitaion temps. Si non validée, utilisez un outil de pointe pour afficher l'erreur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top