Bonjour je voulais savoir qu'es-qu’était le ToolStrip ? par exemple le ToolStripCombobox on peux pas accéder à la DataSource pourquoi ? qu'es-que ToolStrip modifie et pourquoi ?
Bonjour, donc par exemple le ToolStripMenu le conteneur c'est les menus et sous-menus qu'on peut créer et dans ces menus et sous-menus ont peut mettre des objets ? (combobox, textbox etc.) mais pourquoi certaines propriétés de ces objets sont inaccessible ?
non mais en général quand on crée une nouvelle combobox où menus avec le ToolStrip
si on veux mettre par exemple un tableau dans une combobox un mode normal on fait
me.combobox.Datasource = tableaux
mais quand on le fait avec ToolStripCombobox on peut peut pas accéder à la datasource juste aux Items du coup je voulais savoir pourquoi on pouvait pas ?
Bonjour
Parce que Microsoft ne l'a pas prévu à mon avis : une ToolStripCombobox n'a pas toutes les possibilités d'une Combobox ( sinon elle ferait double emploi ) et de plus la ToolStripCombobox est forcément rattachée à un ToolStrip .
ToolStrip = Barre d'outils en français
Attention à ne pas confondre ToolStrip et MenuStrip
vb95
Don si j'ai bien compris le ToolStrip fournit des "conteneur" dans lequel on peux placer des objets ? et les accès aux propriétés des objets sont régit par ToolStrip ? pour pas faire de double emploie ?
bonjour
Dans ta barre d'outils tu peux placer des Label, des Buttons, des Combobox, etc ....
Ces contrôles sont similaires à ceux que l'on peut placer directement sur une Form mais n'en ont pas toutes les possibilités !
As-tu été voir le lien que je t'ai proposé ?
En windorm, le binding est limité.
Un certain nombres de contrôles ne le permettent pas.
Souvent si un contrôle n'a pas vocation à afficher de la "donnée", il ne peut pas être bindé.
Cependant, il y a un autre cas où ce message d'erreur apparaît, si tu as déjà lié le contrôle à un bindingSource et qu'ensuite tu essayes d'affecter le datasource. Dans ce cas, la liaison avec le bindingsource est bloquante et tu ne peux plus affecter un entier autre source de données.
Donc sans visual studio sous la main et juste un message d'erreur, je t'ai demandé du code. Avec maintenant un peu plus de contexte, je penche pour la première raison, mais je ne l'ai toujours pas vérifié.
Ha vu ta formulation, j'ai cru que tu avais eu un message du genre "Datasource ne peut pas être modifié"
Mais effectivement, en relisant msdn, je voie que la propriété n'existe pas. C'est donc bien la première option, un menu n'est pas prévu pour afficher le contenu d'une base de données, ce qui est la fonction première du binding.
bonjour
As-tu lu le lien que je t'ai donné ?
Car celui-ci répond à toutes les questions que tu te poses et tu te rendras compte que certaines de tes questions sont dénuées de sens .
oui j'ai été voir , ce que j'ai compris c'est que la classe ToolStrip fournit un conteneur dans lequel on peut mettre des objets c'est bien ça ? ce que j'aimerais comprendre ce sont les propriétés de ces objets dans le ToolStrip ,et es-que que les développeurs (de Microsoft) peuvent modifier à leur guise les propriété ? pourquoi ils les modifient ? jtrouve que ça sert à pas grand-chose de modifier (si c'est le cas) la propriété DataSource ...
Bonjour !
Tu as écrit : "oui j'ai été voir , ce que j'ai compris c'est que la classe ToolStrip fournit un conteneur dans lequel on peut mettre des objets c'est bien ça ? "
C'est tout à fait cela et si tu l'as compris c'est bien !
Maintenant il ne faut pas confondre la Combobox et la ToolStripCombobox .
La première se pose sur une Form alors que la seconde se pose dans un Toostrip ( barre d'outils)
On comprend que la première est d'une usage général et de ce fait qu'elle possède plus de propriétés que la seconde .
Maintenant au sujet des développeurs Microsoft je ne pense pas qu'ils modifient ce qu'ils veulent à leur guise car cela mettrait une sacrée pagaille dans les langages de programmation à mon avis .
Maintenant si ma réponse ne te satisfait pas tu peux toujours demander à Microsoft directement !
oui la première on la pose sur la Form mais ce que je veux dire , c'est que pour faire une combobox pour la ToolStrip on utilise la même combobox de la Form sauf qu'ils l'ont intégré à la ToolStrip et modifié quelque propriété ? un-peu comme une structure si on veut assigner des valeurs ou non ?
un conteneur dans lequel on peut mettre des objets c'est bien ça ?
par n'importe quels objets, des contrôles, et contrairement au conteneur de base (la form) pas n'importe quels contrôles des éléments de menu.
Et un élément de menu qui ressemble à un combobox n'est pas un combox, mais un élément de menu qui y ressemble.
Quand à
es-que que les développeurs (de Microsoft) peuvent modifier à leur guise les propriété
il ne l'ont pas modifiée, il ne l'ont pas mise.
Quand tu écrits un objet (contrôle ou pas), tu lui donnes les propriétés qui lui sont utiles.
Un menu n'a pas vocation à afficher le contenu d'une source de données (je me répète là...) donc il n'a pas besoin de datasource.
par n'importe quels objets, des contrôles, et contrairement au conteneur de base (la form) pas n'importe quels contrôles des éléments de menu.
oui , se sont des contrôles qui sont mis de base , donc on peux pas en rajouter ni à enlever ?
il ne l'ont pas modifiée, il ne l'ont pas mise.
Quand tu écrits un objet (contrôle ou pas), tu lui donnes les propriétés qui lui sont utiles.
peut-être mais sa reste une combobox , mais je pense que pour faire les combobox ou autres des menus ils ont pas du se faire chier a refaire tout un code ils ont juste du enlever des propriété qui ne "servait à rien"... comme je l'ai dis plus haut ?
"oui la première on la pose sur la Form mais ce que je veux dire , c'est que pour faire une combobox pour la ToolStrip on utilise la même combobox de la Form sauf qu'ils l'ont intégré à la ToolStrip et modifié quelque propriété ? un-peu comme une structure si on veut assigner des valeurs ou non ?"
non ce sont des éléments de menu, tu ne peux pas y mettre des textbox, des comboxbox etc... tu ne peux y mettre que des éléments de menu.
donc on peux pas en rajouter ni à enlever
tu peux en mettre autant que tu veux, en mode design et en ajouter ou en supprimer autant que tu veux en dynamique.
peut-être mais sa reste une combobox , mais je pense que pour faire les combobox ou autres des menus ils ont pas du se faire chier a refaire tout un code ils ont juste du enlever des propriété qui ne "servait à rien"... comme je l'ai dis plus haut ?
Il n'est pas possible en .Net d'hériter de 2 parents. Un ToolStripCombobox hérite de ToolStripControlHost, donc il ne peut pas hériter de ComboBox. Et comme il n'hérite pas de ComboBox, il n'en a pas les propriétés. Par contre, en regardant MSDN à la page de ToolStripControlHost, on voie qu'il héberge un autre contrôle. Donc le ToolStripCombobox est certainement un ToolStripControlHost qui héberge un ComboBox, dans son code interne il dispose de tous les attributs (propriétés, évènements et méthodes) du dit ComboBox, et il y a un lien entre les propriétés utiles dans le cadre prévu pour un ToolStripCombobox vers quelques propriétés du combobox.
tu peux en mettre autant que tu veux, en mode design et en ajouter ou en supprimer autant que tu veux en dynamique.
je parlé pour ajouter d'autres contrôles (d'autres éléments) (mais visiblement en regardant ToolStripControlHost nous pourrions , à voir)
Il n'est pas possible en .Net d'hériter de 2 parents. Un ToolStripCombobox hérite de ToolStripControlHost, donc il ne peut pas hériter de ComboBox. Et comme il n'hérite pas de ComboBox, il n'en a pas les propriétés. Par contre, en regardant MSDN à la page de ToolStripControlHost, on voie qu'il héberge un autre contrôle. Donc le ToolStripCombobox est certainement un ToolStripControlHost qui héberge un ComboBox, dans son code interne il dispose de tous les attributs (propriétés, évènements et méthodes) du dit ComboBox, et il y a un lien entre les propriétés utiles dans le cadre prévu pour un ToolStripCombobox vers quelques propriétés du combobox.
c'est bien ce que je dis , le ToolStripControlHost permet d'héberger des contrôles et des contrôles personnalisé , le contrôle personnalisé par exemple c'est l'élément combobox ? ou on ajoute ou enlève des propriétés
suivant sont utilité ?
après si tu dis que ToolStripCombox n’hérite pas de Combobox mais de ToolStripControlHost que lui héberge une Combobox je vois par trop à quoi çà sert d'hébergé une combobox si on peux créer de zéro un élément de menu qui ressemble à une Combobox on y mettrai directement les propriétés qu'on voudrait sans hébergé une Combobox dans le ToolStripControlHost ...
Sais-tu ce qu'est l'héritage pour une classe ? ( Un contrôle est une classe d'ailleurs )
De plus si ToolStripCombobox n'avait pas la propriété Items on ne voit pas ce à quoi ToolStripCombobox servirait !
Réfléchis avant de poser tes questions !
Maintenant l'héritage très simplifié
Suppose une classe Voiture
Tous les objets Voiture ont un moteur, un volant , etc.... Ce sont les propriétés de la classe Voiture
Maintenant tu as des voitures à essence et des voitures diésel !
Donc tu crées 2sous- classes : VoitureEssence et VoitureDiesel . Ces 2 sous-classes héritent de la classe Voiture car les objets de ces 2 sous-classes ont un moteur, un volant
Cependant la sous-classe VoitureDiesel a la propriété Injecteurs ( seules les voitures diésel ont des injecteurs) et la sous-classe VoitureEssence n'a donc pas cette propriété
Pour résumé une classe qui hérite d'une classe mère a les propriétés de cette classe mère plus ses propres propriétés .
Maintenant si tu ne comprends pas la notion d'héritage .....................on n'ira pas plus loin
L'exemple ci dessous n'a pas lieu d'être dans un vrai programme, c'est juste pour te montrer que l'on peut faire un peu comme on veut avec l'héritage et "l'hébergement".
Je dispose d'une classe Personne
Class Personne
Public Sub New(ByVal MonNom As String, ByVal MonPrenom As String, ByVal MaDateNaissance As Date)
lenom = MonNom
leprenom = MonPrenom
ladateNaissance = MaDateNaissance
End Sub
Private lenom As String
Public ReadOnly Property Nom As String
Get
Return lenom
End Get
End Property
Private leprenom As String
Public ReadOnly Property Prenom As String
Get
Return leprenom
End Get
End Property
Private ladateNaissance As Date
Public ReadOnly Property DateNaissance As Date
Get
Return ladateNaissance
End Get
End Property
End Class
D'autre part il existe une classe permettant d'enregistrer des données, d'en ajouter, d'en supprimer, etc... => la Liste.
Je vais donc créer une classe Contact dérivée de Personne et qui "hébergera" une liste de numéros de téléphone.
Class Contact
Inherits Personne
Private numeros As New List(Of Integer)() From {123, 456, 789}
Public ReadOnly Property Items As List(Of Integer)
Get
Return numeros
End Get
End Property
End Class
J'ai appelé en interne la liste "hébergée" numeros, mais j'ai appelé la propriété Items, parce que j'ai envie.
Cette propriété est en lecture seule, je peux accéder à ces méthodes et propriétés
Dim monContact As New Contact()
Dim num1 As Integer = monContact.Items(1)
monContact.Items.Add(234)
monContact.Items.Remove(123)
Mais je ne peux pas faire une nouvelle liste
monContact.Items = New List(Of Integer)()
Et je n'ai pas mis de propriété DataSource, car cette classe n'a pas vocation à afficher le contenu d'une source de données.
En fait, à chacune de tes questions, depuis des mois, tu ne lis pas ou ne retiens pas ce que l'on écrit.
Ça donne la très forte impression que tu ne fais aucun effort.
et pour créer l'apparence graphique de la ToolStripCombobox ils ont fait comment ? ils ont utiliser des codes déjà existant de la combobox de la Form ou pas ?
Admettons que tu ailles passer quelques jours chez un ami.
Il t'héberge donc.
Est ce que chez cet ami, il n'y a que tes propriétés? Ou il y a aussi ton apparence physique?
D'ailleurs est ce que ton apparence ne serait pas le résultat d'un ensemble de propriétés?
un oui ou non aurait suffit... je demande juste si pour faire l'apparence graphique de ToolStripCombobox si ils ont utiliser des codes de Combobox ou pas ?
Quand je te réponds par oui ou par non, ton message suivant est en général à coté de la plaque.
Quand je te donne un exemple, ça ne te convient pas.
Quand j'essaye de t'expliquer ou de te faire réfléchir par toi même non plus.
Je fais un dernier essai, quand ta form héberge un combobox, est ce que tu copies colles le code du dit combobox?
Admettons que tu ailles passer quelques jours chez un ami.
Il t'héberge donc.
Est ce que chez cet ami, il n'y a que tes propriétés? Ou il y a aussi ton apparence physique?
D'ailleurs est ce que ton apparence ne serait pas le résultat d'un ensemble de propriétés?
Quand je te donne un exemple, ça ne te convient pas.
Quand j'essaye de t'expliquer ou de te faire réfléchir par toi même non plus.
Je fais un dernier essai, quand ta form héberge un combobox, est ce que tu copies colles le code du dit combobox?