zaimfaycal
Messages postés7Date d'inscriptiondimanche 18 octobre 2009StatutMembreDernière intervention 6 janvier 2010 6 janv. 2010 à 11:14
merci Addy
mais jé pas bien compris ce que tu veux dire de "d'en garder une instance dans la propriété Tag de chaque SheduleItem" et aussi pour l'évènement FormatItem :S
est ce que vous m'expliquer
et mercii :)
cs_addy
Messages postés39Date d'inscriptionlundi 3 janvier 2005StatutMembreDernière intervention20 mars 2009 31 déc. 2009 à 11:35
En fait tu n'as pas vraiment besoin de modifier la structure de SheduleItem. Il suffit de créer une classe utilitaire pour stocker toute information additionnelle (Filière, Niveau, Groupe, ...) et d'en garder une instance dans la propriété Tag de chaque SheduleItem. Tu pourras ensuite exploiter ces informations dans ton gestionnaire de FormatItem. Dans tous les cas, même en gardant ton approche, c'est dans le gestionnaire de l'évènement FormatItem que tu personnalise l'apparence de tes items. J'espère que cette indication t'aidera. Allez, bonne programmation.
zaimfaycal
Messages postés7Date d'inscriptiondimanche 18 octobre 2009StatutMembreDernière intervention 6 janvier 2010 30 déc. 2009 à 13:12
Salut
Merci addy pour l’aide, mais j'ai tjrs un problème, c que pour mon projet le 'SheduleItem' dois contenir les champs suivant :
Jour as single
Heuredebut as single
HeureFin As Single
Tag As Object
Formateur As String
Annéeformation As String
Secteur As String
Filiere As String
Niveau As String
Groupe As String
Modul As String
Salle As String
Minutedebut As Double
MinuteFin As Double
J'ai refait le code du SheduleItem (j'ai pu réalisé ce code):
'Début du code
Imports System.ComponentModel
< _
ToolboxItem(False), _
DesignTimeVisible(False) _
> _
Public Class SheduleItem
Inherits Component
#Region " Champs "
Private _CODE As String
' Private m_Category As Integer
Private _Jour As Integer
Private m_SubRow As Integer
Private _Heuredebut As Single
Private _HeureFin As Single
Private _Tag As Object
Private _Formateur As String
Private _Annéeformation As String
Private _Secteur As String
Private _Filiere As String
Private _Niveau As String
Private _Groupe As String
Private _Modul As String
Private _Salle As String
Private _Minutedebut As Double
Private _MinuteFin As Double
#End Region
#Region " Constructeurs "
Public Sub New()
MyBase.New()
End Sub
Public Sub New(ByVal text As String)
MyBase.New()
_CODE = text
End Sub
Public Sub New(ByVal text As String, ByVal row As Integer, ByVal subRow As Integer, _
ByVal firstCol As Single, ByVal lastCol As Single)
MyBase.New()
_CODE = text
_Jour = row
_Heuredebut = firstCol
_HeureFin = lastCol
End Sub
#End Region
#Region " Propriétés "
< _
Category("Appearance"), _
Description("Texte qui s'affiche sur la cellule"), _
DefaultValue("") _
> _
Public Property Text() As String
Get
Return _CODE
End Get
Set(ByVal Value As String)
_CODE = Value
OnTextChanged(EventArgs.Empty)
End Set
End Property
'< _
'Category("Appearance"), _
'Description("Renvoie/Défini la catégorie à laquelle la cellule appartient"), _
'DefaultValue(0) _
'> _
'Public Property Category() As Integer
' Get
' Return m_Category
' End Get
' Set(ByVal Value As Integer)
' m_Category = Value
' OnCategoryChanged(EventArgs.Empty)
' End Set
'End Property
< _
Category("Coordonnées"), _
Description("Renvoie/Défini le numéro de ligne de la cellule"), _
DefaultValue(0) _
> _
Public Property Row() As Integer
Get
Return _Jour
End Get
Set(ByVal Value As Integer)
_Jour = Value
OnRowChanged(EventArgs.Empty)
End Set
End Property
< _
Category("Coordonnées"), _
Description("Renvoie/Défini la division de ligne dans laquelle la cellule apparaît"), _
DefaultValue(0) _
> _
Public Property SubRow() As Integer
Get
Return m_SubRow
End Get
Set(ByVal Value As Integer)
m_SubRow = Value
OnSubRowChanged(EventArgs.Empty)
End Set
End Property
< _
Category("Coordonnées"), _
Description("Renvoie/Défini la colonne qui délimite la cellule à gauche"), _
DefaultValue(8.0F) _
> _
Public Property FirstColumn() As Single
Get
Return _Heuredebut
End Get
Set(ByVal Value As Single)
_Heuredebut = Value
OnFirstColumnChanged(EventArgs.Empty)
End Set
End Property
< _
Category("Coordonnées"), _
Description("Renvoie/Défini la colonne qui délimite la cellule à droite"), _
DefaultValue(8.0F) _
> _
Public Property LastColumn() As Single
Get
Return _HeureFin
End Get
Set(ByVal Value As Single)
_HeureFin = Value
OnLastColumnChanged(EventArgs.Empty)
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Tag() As Object
Get
Return _Tag
End Get
Set(ByVal Value As Object)
_Tag = Value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Formateur() As String
Get
Return _Formateur
End Get
Set(ByVal value As String)
_Formateur = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Annéeformation() As String
Get
Return _Annéeformation
End Get
Set(ByVal value As String)
_Annéeformation = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Secteur() As String
Get
Return _Secteur
End Get
Set(ByVal value As String)
_Secteur = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Niveau() As String
Get
Return _Niveau
End Get
Set(ByVal value As String)
_Niveau = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Filiere() As String
Get
Return _Filiere
End Get
Set(ByVal value As String)
_Filiere = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Groupe() As String
Get
Return _Groupe
End Get
Set(ByVal value As String)
_Groupe = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Minutedebut() As Double
Get
Return _Minutedebut
End Get
Set(ByVal value As Double)
_Minutedebut = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property MinuteFin() As Double
Get
Return _MinuteFin
End Get
Set(ByVal value As Double)
_MinuteFin = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Modul() As String
Get
Return _Modul
End Get
Set(ByVal value As String)
_Modul = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Salle() As String
Get
Return _Salle
End Get
Set(ByVal value As String)
_Salle = value
End Set
End Property
_
Public ReadOnly Property Width() As Single
Get
Return _HeureFin - _Heuredebut
End Get
End Property
#End Region
#Region " Evènements "
Public Event TextChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnTextChanged(ByVal e As EventArgs)
RaiseEvent TextChanged(Me, e)
End Sub
Public Event CategoryChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnCategoryChanged(ByVal e As EventArgs)
RaiseEvent CategoryChanged(Me, e)
End Sub
Public Event RowChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnRowChanged(ByVal e As EventArgs)
RaiseEvent RowChanged(Me, e)
End Sub
Public Event SubRowChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnSubRowChanged(ByVal e As EventArgs)
RaiseEvent SubRowChanged(Me, e)
End Sub
Public Event FirstColumnChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnFirstColumnChanged(ByVal e As EventArgs)
RaiseEvent FirstColumnChanged(Me, e)
End Sub
Public Event LastColumnChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnLastColumnChanged(ByVal e As EventArgs)
RaiseEvent LastColumnChanged(Me, e)
End Sub
#End Region
End Class
'Fin du code
mais ça marche pas
je me demande est ce que vous pouvez m'aider
et mercii
cs_addy
Messages postés39Date d'inscriptionlundi 3 janvier 2005StatutMembreDernière intervention20 mars 2009 16 déc. 2009 à 14:50
Bien sûr qu'il est possible de stocker les données sur n'importe quel support. Si tu as une BDD avec une table pour le planning, il suffit de charger le contenu de cette dans un DataSet (un bon tuto sur VB.Net t'expliquera comment). Pour le reste, c'est presque sans changement.
zaimfaycal
Messages postés7Date d'inscriptiondimanche 18 octobre 2009StatutMembreDernière intervention 6 janvier 2010 14 déc. 2009 à 17:37
merciii, mais j'ai constaté que les donnée se stock sur un fichier xml ,est ce que c'est possible de les stocké dans une base de donné SQL SERVER :D et comment si c’est possible :p
Et désolé pour le dérangement
cs_addy
Messages postés39Date d'inscriptionlundi 3 janvier 2005StatutMembreDernière intervention20 mars 2009 14 déc. 2009 à 10:13
Le contrôle lui-même est écrit en VB.Net. Seule la démo est en C#. Du reste, tu peux utiliser SharpDevelop pour traduire automatiquement un code C# en VB.Net. N'oublie pas de jeter un coup d'œil sur www.developpez.com; tu y trouveras certainement un bon manuel pour débuter en VB.Net. Bonne programmation.
zaimfaycal
Messages postés7Date d'inscriptiondimanche 18 octobre 2009StatutMembreDernière intervention 6 janvier 2010 13 déc. 2009 à 14:08
Salut
Merci Addy beaucoup pour cette source
Mais pour mois je travaille sur un projet de gestion des emplois du temps pour un établissement scolaire et je ne maîtrise que le langage visuel basic .net alors je me demande si il y un support qui explique comment travaillé avec ce magnifique contrôle pour que je puisse traduire ce code en vb.net et merci d'avance
pour la note c' est 10/10 et même plus :)
cs_addy
Messages postés39Date d'inscriptionlundi 3 janvier 2005StatutMembreDernière intervention20 mars 2009 18 mai 2009 à 10:53
Dans cette approche, tu supposes que l'élément du planning qui se trouve à la position e.Index appartient également à la ligne dont on veut connaître le libellé. Dans cet ordre d'idée, on pourrait tout simplement formuler l'algorithme comme ceci:
If e.Index < Items.Count Then
e.Text = Items(e.Index).Text
Else
e.Text = "Ligne " & e.Index
End If
Par contre, dans la grande majorité des cas, cette assertion ne sera pas vraie. Donc le mieux c'est de rechercher le premier élément de la ligne dont on veut définir le libellé:
e.Text = "Ligne " & e.Index
For Each item As SheduleItem In Items
If item.Row = e.Index then
e.Text = item.Text
Exit For
End If
Next
J'espère que ceci apporte de l'eau à ton moulin :)
jsiAngers
Messages postés7Date d'inscriptiondimanche 21 septembre 2003StatutMembreDernière intervention28 avril 2009 17 mai 2009 à 16:00
Bonjour,
Merci pour cette source.
Elle m'est très utile.
Je suis en train de faire quelques améliorations :
Exemple : pour permettre la mise en place d'un libellé automatique pour la ligne
Protected Overridable Sub OnQueryRowHeader(ByVal e As HeaderEventArgs)
'*** Modification JSI du 17/05/09
'Recherche l'item correspondant à la ligne appelée
Dim i As Integer
Dim item As New SheduleItem
item.Text = "Ligne" & e.Index
For i = 0 To Items.Count - 1
If i = e.Index Then
item = Items(i)
End If
Next
e.Text = item.Text '"Ligne" & e.Index
RaiseEvent QueryRowHeader(Me, e)
End Sub
cs_addy
Messages postés39Date d'inscriptionlundi 3 janvier 2005StatutMembreDernière intervention20 mars 2009 16 sept. 2008 à 09:51
Salut Casy,
ta note a été prise en compte et des commentaires seront ajoutés dans la prochaine mise à jour de la source (dans le démo surtout).
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 15 sept. 2008 à 19:15
Zut, je suis pas sur que ma note ait été prise en compte, donc je la remet
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 15 sept. 2008 à 19:13
Merci pour cette source.
Il manque un peu de commentaire dans le code, mais j'ai réussi à comprendre le principal.
Je suis en train de l'adapter pour un dev pour un client. Elle va me permettre d'afficher un planning de chaine de production
J'étais parti, au départ sur des composants "pro" tels que ceux de ComponentOne ou DevXperience. Mais plutot que de payer cher des composants qui ne correspondent pas tout à fait à ce que je veux et je ne maitrise pas au niveau adaptation, cette source a le mérite d'être simple et au moins je maitrise toute l'adaptabilité possible.
Modifs prévues :
- Ajout d'un entête pour les divisions de lignes
- Report des propriétés couleur, style, ... sur les items plutôt que sur le contrôle parent
- Ajout (si j'y arrive) de la gestion Drag&Drop des items
- et plein d'autres choses si j'ai le temps.
Je n'aurais jamais eu l'idée de partir sur cette piste pour développer une source de ce genre alors que finalement c'est relativement simple.
Merci pour ton aide ;)
9/10 pour l'absence de commentaires dans le code
crocejf2000
Messages postés260Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention27 août 20081 11 avril 2007 à 09:01
Salut,
Merci beaucoup pour cette source dont je m'inspire grandement pour faire mon propre contôle planning.
Je la trouve très bien écrite, malgré le manque de commentaires sur certaines fonctions.
10/10 !!
ienien51
Messages postés1Date d'inscriptionlundi 16 février 2004StatutMembreDernière intervention10 février 2006 10 févr. 2006 à 15:06
Bonjour,
Je ne suis pas trés experimenté, mais j'aimerais fortement pouvoir utiliser AddyShedule. Est-il possible d'avoir un exemple d'utilisation?
Merci d'avance
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 30 déc. 2005 à 10:04
Bravo pour ta source. Pour que ta démo fonctionne du premier coup, je te conseille de changer le chemin de sortie en .\ au lieu de bin\Debug
6 janv. 2010 à 11:14
mais jé pas bien compris ce que tu veux dire de "d'en garder une instance dans la propriété Tag de chaque SheduleItem" et aussi pour l'évènement FormatItem :S
est ce que vous m'expliquer
et mercii :)
31 déc. 2009 à 11:35
30 déc. 2009 à 13:12
Merci addy pour l’aide, mais j'ai tjrs un problème, c que pour mon projet le 'SheduleItem' dois contenir les champs suivant :
Jour as single
Heuredebut as single
HeureFin As Single
Tag As Object
Formateur As String
Annéeformation As String
Secteur As String
Filiere As String
Niveau As String
Groupe As String
Modul As String
Salle As String
Minutedebut As Double
MinuteFin As Double
J'ai refait le code du SheduleItem (j'ai pu réalisé ce code):
'Début du code
Imports System.ComponentModel
< _
ToolboxItem(False), _
DesignTimeVisible(False) _
> _
Public Class SheduleItem
Inherits Component
#Region " Champs "
Private _CODE As String
' Private m_Category As Integer
Private _Jour As Integer
Private m_SubRow As Integer
Private _Heuredebut As Single
Private _HeureFin As Single
Private _Tag As Object
Private _Formateur As String
Private _Annéeformation As String
Private _Secteur As String
Private _Filiere As String
Private _Niveau As String
Private _Groupe As String
Private _Modul As String
Private _Salle As String
Private _Minutedebut As Double
Private _MinuteFin As Double
#End Region
#Region " Constructeurs "
Public Sub New()
MyBase.New()
End Sub
Public Sub New(ByVal text As String)
MyBase.New()
_CODE = text
End Sub
Public Sub New(ByVal text As String, ByVal row As Integer, ByVal subRow As Integer, _
ByVal firstCol As Single, ByVal lastCol As Single)
MyBase.New()
_CODE = text
_Jour = row
_Heuredebut = firstCol
_HeureFin = lastCol
End Sub
#End Region
#Region " Propriétés "
< _
Category("Appearance"), _
Description("Texte qui s'affiche sur la cellule"), _
DefaultValue("") _
> _
Public Property Text() As String
Get
Return _CODE
End Get
Set(ByVal Value As String)
_CODE = Value
OnTextChanged(EventArgs.Empty)
End Set
End Property
'< _
'Category("Appearance"), _
'Description("Renvoie/Défini la catégorie à laquelle la cellule appartient"), _
'DefaultValue(0) _
'> _
'Public Property Category() As Integer
' Get
' Return m_Category
' End Get
' Set(ByVal Value As Integer)
' m_Category = Value
' OnCategoryChanged(EventArgs.Empty)
' End Set
'End Property
< _
Category("Coordonnées"), _
Description("Renvoie/Défini le numéro de ligne de la cellule"), _
DefaultValue(0) _
> _
Public Property Row() As Integer
Get
Return _Jour
End Get
Set(ByVal Value As Integer)
_Jour = Value
OnRowChanged(EventArgs.Empty)
End Set
End Property
< _
Category("Coordonnées"), _
Description("Renvoie/Défini la division de ligne dans laquelle la cellule apparaît"), _
DefaultValue(0) _
> _
Public Property SubRow() As Integer
Get
Return m_SubRow
End Get
Set(ByVal Value As Integer)
m_SubRow = Value
OnSubRowChanged(EventArgs.Empty)
End Set
End Property
< _
Category("Coordonnées"), _
Description("Renvoie/Défini la colonne qui délimite la cellule à gauche"), _
DefaultValue(8.0F) _
> _
Public Property FirstColumn() As Single
Get
Return _Heuredebut
End Get
Set(ByVal Value As Single)
_Heuredebut = Value
OnFirstColumnChanged(EventArgs.Empty)
End Set
End Property
< _
Category("Coordonnées"), _
Description("Renvoie/Défini la colonne qui délimite la cellule à droite"), _
DefaultValue(8.0F) _
> _
Public Property LastColumn() As Single
Get
Return _HeureFin
End Get
Set(ByVal Value As Single)
_HeureFin = Value
OnLastColumnChanged(EventArgs.Empty)
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Tag() As Object
Get
Return _Tag
End Get
Set(ByVal Value As Object)
_Tag = Value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Formateur() As String
Get
Return _Formateur
End Get
Set(ByVal value As String)
_Formateur = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Annéeformation() As String
Get
Return _Annéeformation
End Get
Set(ByVal value As String)
_Annéeformation = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Secteur() As String
Get
Return _Secteur
End Get
Set(ByVal value As String)
_Secteur = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Niveau() As String
Get
Return _Niveau
End Get
Set(ByVal value As String)
_Niveau = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Filiere() As String
Get
Return _Filiere
End Get
Set(ByVal value As String)
_Filiere = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Groupe() As String
Get
Return _Groupe
End Get
Set(ByVal value As String)
_Groupe = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Minutedebut() As Double
Get
Return _Minutedebut
End Get
Set(ByVal value As Double)
_Minutedebut = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property MinuteFin() As Double
Get
Return _MinuteFin
End Get
Set(ByVal value As Double)
_MinuteFin = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Modul() As String
Get
Return _Modul
End Get
Set(ByVal value As String)
_Modul = value
End Set
End Property
< _
Category("Data"), _
Description("Donnée quelconque associée à la cellule"), _
TypeConverter("System.ComponentModel.StringConverter, System") _
> _
Public Property Salle() As String
Get
Return _Salle
End Get
Set(ByVal value As String)
_Salle = value
End Set
End Property
_
Public ReadOnly Property Width() As Single
Get
Return _HeureFin - _Heuredebut
End Get
End Property
#End Region
#Region " Evènements "
Public Event TextChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnTextChanged(ByVal e As EventArgs)
RaiseEvent TextChanged(Me, e)
End Sub
Public Event CategoryChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnCategoryChanged(ByVal e As EventArgs)
RaiseEvent CategoryChanged(Me, e)
End Sub
Public Event RowChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnRowChanged(ByVal e As EventArgs)
RaiseEvent RowChanged(Me, e)
End Sub
Public Event SubRowChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnSubRowChanged(ByVal e As EventArgs)
RaiseEvent SubRowChanged(Me, e)
End Sub
Public Event FirstColumnChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnFirstColumnChanged(ByVal e As EventArgs)
RaiseEvent FirstColumnChanged(Me, e)
End Sub
Public Event LastColumnChanged(ByVal sender As Object, ByVal e As EventArgs)
Protected Overridable Sub OnLastColumnChanged(ByVal e As EventArgs)
RaiseEvent LastColumnChanged(Me, e)
End Sub
#End Region
End Class
'Fin du code
mais ça marche pas
je me demande est ce que vous pouvez m'aider
et mercii
16 déc. 2009 à 14:50
14 déc. 2009 à 17:37
Et désolé pour le dérangement
14 déc. 2009 à 10:13
13 déc. 2009 à 14:08
Merci Addy beaucoup pour cette source
Mais pour mois je travaille sur un projet de gestion des emplois du temps pour un établissement scolaire et je ne maîtrise que le langage visuel basic .net alors je me demande si il y un support qui explique comment travaillé avec ce magnifique contrôle pour que je puisse traduire ce code en vb.net et merci d'avance
pour la note c' est 10/10 et même plus :)
18 mai 2009 à 10:53
If e.Index < Items.Count Then
e.Text = Items(e.Index).Text
Else
e.Text = "Ligne " & e.Index
End If
Par contre, dans la grande majorité des cas, cette assertion ne sera pas vraie. Donc le mieux c'est de rechercher le premier élément de la ligne dont on veut définir le libellé:
e.Text = "Ligne " & e.Index
For Each item As SheduleItem In Items
If item.Row = e.Index then
e.Text = item.Text
Exit For
End If
Next
J'espère que ceci apporte de l'eau à ton moulin :)
17 mai 2009 à 16:00
Merci pour cette source.
Elle m'est très utile.
Je suis en train de faire quelques améliorations :
Exemple : pour permettre la mise en place d'un libellé automatique pour la ligne
Protected Overridable Sub OnQueryRowHeader(ByVal e As HeaderEventArgs)
'*** Modification JSI du 17/05/09
'Recherche l'item correspondant à la ligne appelée
Dim i As Integer
Dim item As New SheduleItem
item.Text = "Ligne" & e.Index
For i = 0 To Items.Count - 1
If i = e.Index Then
item = Items(i)
End If
Next
e.Text = item.Text '"Ligne" & e.Index
RaiseEvent QueryRowHeader(Me, e)
End Sub
16 sept. 2008 à 09:51
ta note a été prise en compte et des commentaires seront ajoutés dans la prochaine mise à jour de la source (dans le démo surtout).
15 sept. 2008 à 19:15
15 sept. 2008 à 19:13
Il manque un peu de commentaire dans le code, mais j'ai réussi à comprendre le principal.
Je suis en train de l'adapter pour un dev pour un client. Elle va me permettre d'afficher un planning de chaine de production
J'étais parti, au départ sur des composants "pro" tels que ceux de ComponentOne ou DevXperience. Mais plutot que de payer cher des composants qui ne correspondent pas tout à fait à ce que je veux et je ne maitrise pas au niveau adaptation, cette source a le mérite d'être simple et au moins je maitrise toute l'adaptabilité possible.
Modifs prévues :
- Ajout d'un entête pour les divisions de lignes
- Report des propriétés couleur, style, ... sur les items plutôt que sur le contrôle parent
- Ajout (si j'y arrive) de la gestion Drag&Drop des items
- et plein d'autres choses si j'ai le temps.
Je n'aurais jamais eu l'idée de partir sur cette piste pour développer une source de ce genre alors que finalement c'est relativement simple.
Merci pour ton aide ;)
9/10 pour l'absence de commentaires dans le code
11 avril 2007 à 09:01
Merci beaucoup pour cette source dont je m'inspire grandement pour faire mon propre contôle planning.
Je la trouve très bien écrite, malgré le manque de commentaires sur certaines fonctions.
10/10 !!
10 févr. 2006 à 15:06
Je ne suis pas trés experimenté, mais j'aimerais fortement pouvoir utiliser AddyShedule. Est-il possible d'avoir un exemple d'utilisation?
Merci d'avance
30 déc. 2005 à 10:04