Tim221
Messages postés26Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention20 décembre 2006
-
19 déc. 2006 à 20:53
Tim221
Messages postés26Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention20 décembre 2006
-
20 déc. 2006 à 20:34
Bonjour, ayant découvert et insérer Sandribbon qui "copie" le style d'Office 2007 dans mon traitement de texte, je doit pratiquement recommencé de 0% mon code entier alors je me suis attaqué à l'ajout de tailles et de styles d'écritures mais le problème est que quand je lance ce code :
Public Sub polices()'lancer au démarrage
Dim famille As FontFamily
Dim fontfamille As List(Of Divelements.Sandribbon.GalleryButton) = New List(Of Divelements.Sandribbon.GalleryButton)
For Each famille In FontFamily.Families ' Pour chaque types d'écritures ajouter sous forme de bouton dans policecombobox_ruban
If famille.IsStyleAvailable(FontStyle.Regular) Then
bouton = New Divelements.Sandribbon.GalleryButton(famille.Name)
bouton.MinimumSize = New Size(172, 18)
bouton.Tag = famille
bouton.ShowText = False
fontfamille.Add(bouton)
End If
policecombobox_ruban.Items.AddRange(fontfamille.ToArray())
Next
End Sub
Lorsque que je le lance, une erreur apparait sur policecombobox_ruban.Items.AddRange(fontfamille.ToArray()), il me dit "The widget already belongs to this collection." en traduction "Le widget appartient déja à la collection".
Si vous pouvez m'aider, dites-moi ce qui ne marche pas.
Merci
A voir également:
Erreur d'ajout des Fonts avec la combobox de Sandribbon
[...]
fontfamille.Add(bouton)
End If
<strike>policecombobox_ruban.Items.AddRange(fontfamille.ToArray())</strike>
Next
policecombobox_ruban.Items.AddRange(fontfamille.ToArray())
End Sub
Sinon, sa t'ajoute la collection a chaque police.
__________
Kenji
Tim221
Messages postés26Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention20 décembre 2006 20 déc. 2006 à 15:23
Merci une aucune erreur n'apparait mais la combobox est complétement vide alors que polices() est bien lancé au load.Cela est du a une phrase que j'ai enlevé car elle appelle une autre fonction.
Le problème est que je traduis du C# en VB2005, ce qui engendre plein de problème.
La fonction a donc plein d'erreurs
Voila le code en C#:
private void polices()
{
// Ajout des fonts populaires dans la combobox
List<GalleryButton> fontfamille= new List<GalleryButton>();
foreach (FontFamily famille in FontFamily.Families)
{
if (famille.IsStyleAvailable(FontStyle.Regular))
{
GalleryButton button = new GalleryButton(famille.Name);
button.MinimumSize = new Size(172, 18);
button.Tag = famille;
button.ShowText = false;
button.OwnerDraw += new DrawEventHandler(OnDrawFontFamilyButton);//ligne retirée
fontfamille.Add(button);
}
}
policecombobox_ruban.Items.AddRange(fontfamille.ToArray());//erreur corrigé grâce à Charles Racaud
}
using (Font font = new Font(family, 12))
IndependentText.DrawText(e.RenderingContext.Graphics, family.Name, font, button.BoundsWithoutPadding, e.RenderingContext.StandardNearsideText, e.RenderingContext.DefaultTextColor);
}
Et maintenant celui en VB2005:
Public Sub polices()'lancer au démarrage
Dim famille As FontFamily
Dim fontfamille As List(Of Divelements.Sandribbon.GalleryButton) = New List(Of Divelements.Sandribbon.GalleryButton)
For Each famille In FontFamily.Families ' Pour chaque types d'écritures ajouter sous forme de bouton dans policecombobox_ruban
If famille.IsStyleAvailable(FontStyle.Regular) Then
bouton = New Divelements.Sandribbon.GalleryButton(famille.Name)
bouton.MinimumSize = New Size(172, 18)
bouton.Tag = famille
bouton.ShowText = False
bouton.OwnerDraw += New DrawEventHandler(AddressOf OnDrawFontFamilyButton)
fontfamille.Add(bouton)
End If
Next
policecombobox_ruban.Items.AddRange(fontfamille.ToArray())
End Sub
Private Sub OnDrawFontFamilyButton(ByVal sender As Object, ByVal e As DrawEventArgs)
Dim bouton As GalleryButton = sender
Dim family As FontFamily = Button.Tag
Dim font As Font = New Font(family, 12)
Divelements.SandRibbon.Rendering.IndependentText.DrawText(e.RenderingContext.Graphics, family.Name, font, Button.BoundsWithoutPadding, e.RenderingContext.StandardNearsideText, e.RenderingContext.DefaultTextColor)
End Sub
Voila tout ce qui en souligné en rouge en ce que VB2005 me surligne.
Pour "bouton.OwnerDraw += New DrawEventHandler(AddressOf OnDrawFontFamilyButton)" il me dit que c'est un évènement et qu'il faut utilisé Raiseevent,
pour button.tag que c'est une référence à un membre non partagé requiert une référence d'objet.
Encore une fois si vous savez comment y remédier merci d'avance
Tim221
Messages postés26Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention20 décembre 2006 20 déc. 2006 à 18:25
Merci encore une fois, tu viens de m'apprendre 2 choses en vb.net
Le problème des erreurs est réglé, mais l'affichage des écritures ne marche toujours pas.
lorsque je lance mon programme et que je clique sur ma combobox, elle apparait vide.
Cela deviens lassant...
Mais bon si tu as encore une idée pour résoudre ce problème n'hésite pas.
Merci encore une fois de m'aider
Vous n’avez pas trouvé la réponse que vous recherchez ?
Tim221
Messages postés26Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention20 décembre 2006 20 déc. 2006 à 20:34
Je pense avoir trouvé, il s'agit d'un nombre considérable de fonction qui permettent l'ajout de ces textes dans la combobox, cela va me prendre au moins 2 moins (en plus avec Noël...).
Merci beaucoup de m'avoir aidé en n'utilisant pas ce contrôle.