Bonjour !
Toujours dans le cadre d'un projet VB.Net j'implémente des fonctions à partir de la source du petit programme MonoCalendar. Là ou j'en suis, j'aimerais pouvoir surveillé l'ajout de nouveaux rendez-vous dans mon calendrier.
En l'état, il est possible de les créer à la main (donner une date, une heure, une description,etc.) à partir d'une form que j'ai crée, seulement en laissant appuyé le clic gauche de la souris et en étirant sur le calendrier, on génère automatiquement un nouveau rdv. C'est là que le bas blesse : impossible de récupérer l'évènement qui va créer ce rdv. J'ai tenter en vain les événements mouseUp, mouseClick, etc. malheureusement ils sont "réecris" dans la source de monoCalendar et ne sont pas accessible. J'ai uniquement un événement CalendarChanged qui récupère le click de la souris (bien utile, mais pas vraiment pour récuupérer l'ajout de RDV).
Donc ma question est la suivante : j'ai un peu creuser la création d'événements et j'aimerais savoir s'il est possible de créer un événement qui surveillera le lancement d'une fonction, dans mon cas, la fonction InsertNewEvent :
Je voudrais donc un événement OnInsertNewEvent. J'aurais surtout besoin de récupérer cet événement dans le but de lui donner deux propriétés de plus à sa création : l'id du client et l'id de l'adresse du client. Je le fais lors d'un ajout manuel via mon form, mais lors de la création directe dans le calendrier, impossible de lui passer ces 2 valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public void InsertNewEvent() { CalData cd = null; foreach (CalData cd2 in CalWidget.Calendar.cd) if (cd2.Selected) cd = cd2; if (cd == null) return; Selected = new EventTask(); Selected.Start = lastMouse.mouse; Selected.End = lastMouse.mouse; CalTask ct = new CalTask(); ct.start1 = lastMouse.mouse; ct.end1 = lastMouse.mouse; ct.Summary = labelNewEvent; ct.RRule = null; cd.DataList.Add(ct); Selected.calTask = ct; Selected.calData = cd; lastMouse.start = Selected.Start; lastMouse.end = Selected.End; Selected.Start = lastMouse.start; Selected.End = Selected.Start + lastMouse.duration; Repaint2(); }
Merci !
Partager