Planifiez vos vacances avec l'interface utilisateur Telerik pour le planificateur WinForms
Dans ce billet de blog, vous en apprendrez plus sur le contrôle Scheduler de Telerik UI pour WinForms et sur l'utilisation de la nouvelle fonctionnalité de prise en charge des congés ajoutée avec la dernière version de R2'18.
Le planificateur (RadScheduler) dans L'interface utilisateur de Telerik pour WinForms est un composant hautement personnalisable permettant de présenter une variété de programmes avec rendez-vous dans différentes vues telles que Jour, Semaine, Mois et plus. À compter de R2 2018, nous avons également introduit la prise en charge des congés dans RadScheduler où vous pouvez définir des dates spécifiques sous la forme de jours non ouvrables ou les empêcher de prendre des rendez-vous.
Ajout de jours fériés au contrôle du planificateur
La collection Holidays stocke tous les jours spéciaux. Il est accessible au public et avec l'API suivante, vous pouvez ajouter des congés par programmation:
Telerik.WinControls.UI.Holiday holiday =
new
Telerik.WinControls.UI.Holiday ();
holiday.Date =
new
DateTime (2018, 5, 24);
holiday.HolidayName =
"Saints Cyril et Methodius Day"
;
holiday.Location =
"Bulgarie "
;
bool
generateAppointment =
true
;
this
.radScheduler1.Holidays.AddHoliday (holiday, generateAppointment);
Dans l'interface utilisateur, il sera être représenté comme un rendez-vous d'une journée entière qui est indiqué ci-dessous:
Importation à partir d'un fichier Outlook Holidays
L'extension de fichier .hol (Outlook Holiday) a été développée par Microsoft pour stocker les jours non ouvrés pertinents dans Outlook. Nous avons ajouté le support pour l'importation de fichiers Outlook.hol, de sorte que vous pouvez facilement charger des vacances pour différents pays. Voici comment vous chargez un fichier .hol:
chaîne de caractères
nomFichier = @
". Emplacement du fichier .hol"
;
bool
createAppointment =
true
; 19659017] this
.radScheduler1.Holidays.ReadHolidays (nom_fichier, createAppointment);
Voici comment charger les vacances pour un pays spécifique à partir de. Fichier hol:
Chaîne
NomFichier = @
". Emplacement du fichier .hol"
;
bool
createAppointment =
true
;
this
.radScheduler1.Holidays.ReadHolidays (NomFichier, createAppointment,
new
Liste <
string
> () {
"Bulgaria"
);
Mise en évidence des jours fériés
Une fois la collection Holidays remplie (via l'API ou en important un fichier .hol), nous pouvons tirer parti de l'événement de formatage pour différencier ces dates. Nous avons marqué ici tous les jours contenant des jours fériés américains en orange et ceux avec des jours fériés en bulgare en vert:
private
void
radScheduler1_CellFormatting (
objet
sender, Telerik.WinControls.UI.SchedulerCellEventArgs e)
{
si
(! (e.CellElement
est
SchedulerHeaderCellElement))
[
si
(
this
. radScheduler1.Holidays.IsHoliday (e.CellElement.Date))
[
chaîne
s =
chaîne
. Vide;
[19659079] foreach
(item var
dans
this
.radScheduler1.Holidays.GetHolidays (e.CellElement.Date) .OrderBy (ae => ae.HolidayName))
[
si
(! S.Contains (item.HolidayName ))
s + = item.HolidayName + Environment.NewLine;
}
e.CellElement.DrawText =
true
;
e.CellElement.Text = s.ToString ();
e.CellElement.TextWrap =
true
;
e.CellElement.TextAlignment = ContentAlignment.BottomCenter;
Rembourrage = e.CellElement.Padding;
si
(
this
.radScheduler1.ActiveViewType == SchedulerViewType.Month)
padding.Bottom = 22;
]
e.CellElement.Padding = padding;
si [19659007] (
this
.radScheduler1.Holidays.GetHolidays (e.CellElement.Date) .Where (l => l.Location == [19659012] "Bulgaria"
). Any ())
e.CellElement.BackColor = Color.LightGreen;
sinon
e.CellElement.BackColor = Color.Orange;
sinon
[
e.CellElement.DrawText =
false
;
e.CellElement.ResetValue (RadItem.BackColorProperty, ValueResetFlags.Local); [1949] 59015]
}
Dates de blocage
Pour bloquer la création ou la modification de nouveaux rendez-vous, vous devez supprimer la boîte de dialogue permettant d'insérer un nouveau rendez-vous et désactiver le redimensionnement ou le déplacement d'un événement existant vers un jour férié. Pour ce faire, annulez les événements AppointmentEditDialogShowing AppointmentResizing et pour rendez-vous:
private
void
objet radScheduler1_AppointmentMoving (
expéditeur, rendez-vousMovingEventArgs e)
{
si
(
this
.radScheduler1.Holidays.IsHoliday .NewDate) ||
this
.radScheduler1.Holidays.IsHoliday (e.NewDate.Add (e.Appointment.Duration)))
[
e.Cancel =
true
;
RadMessageBox.Show (
"Vous ne pouvez pas ajouter de rendez-vous pour les vacances!
);
[1945902] 0] }
}
privé
void
radScheduler1_AppointmentResizing (
objet
émetteur, rendez-vousResizingEventArgs e)
{
si
] this
.radScheduler1.Holidays.IsHoliday (e.NewStartDate) ||
this
.radScheduler1.Holidays.IsHoliday (e.NewStartDate.Add (e.NewDuration)))
{
]
e.Cancel =
true
;
[19659077] RadMessageBox.Show (
"Vous ne pouvez pas ajouter de rendez-vous pour les vacances!
);
}
privé
void
radScheduler1_AppointmentEditDialogShowing
objet
expéditeur, AppointmentEditDialogShowingEventArgs e)
{
si
(
this
.radScheduler1.Holidays .IsHoliday (e.Appointment.Sta rt))
[
e.Cancel =
true
;
RadMessageBox.Show (
"Vous ne pouvez pas ajouter de rendez-vous pendant les vacances!
);
}
Essayez-le et partagez vos commentaires
RadScheduler fait partie de la suite Telerik UI for WinForms, que vous pouvez en apprendre plus via la page du produit et vient avec un essai gratuit de 30 jours qui vous donne le temps d'explorer la boîte à outils et d'envisager de l'utiliser pour votre développement actuel ou futur.
J'aimerais savoir ce que vous en pensez, alors si vous avez des questions ou des commentaires, veuillez les partager sur notre Feedback Portal ou dans la section des commentaires ci-dessous.
Les commentaires sont désactivés en mode prévisualisation. 19659238]
Source link