[vb.net] fontfamilies in combobox

Pagina: 1
Acties:
  • 43 views sinds 30-01-2008

  • toost
  • Registratie: Januari 2002
  • Laatst online: 30-01-2025
ik heb een combobox die ik fill met de font families:

code:
1
2
3
4
5
6
7
8
9
10
        Dim f As System.Drawing.Text.InstalledFontCollection = New _
              System.Drawing.Text.InstalledFontCollection

        Dim fFamily As FontFamily

        For Each fFamily In f.Families

            cmb.Items.Add(fFamily.Name)

        Next


nu wil ik de geselecteerde text uit de RTF de geselecteerde fontfamily geven uit de combobox. voor de fontsize deed ik het zo:

code:
1
2
3
4
5
6
7
8
9
        Try
            Dim currentFont As System.Drawing.Font = Input.SelectionFont

            Input.SelectionFont = New Font( _
               currentFont.FontFamily, _
               cmbFontSize.SelectedItem, _
               currentFont.Style)
        Catch ex As Exception
        End Try


dit doet het precies zoals ik wil, maar als ik nu het volgende doe:

code:
1
2
3
4
5
6
7
8
9
        Try
            Dim currentFont As System.Drawing.Font = Input.SelectionFont

            Input.SelectionFont = New Font( _
               cmbFontFamily.SelectedItem, _
               currentFont.Size, _
               currentFont.Style)
        Catch ex As Exception
        End Try


dan doet tie dus niks, hij geeft in visual studio al gelijk een blauwe onderstreping met een overload waarschuwing. Ik heb het al op allerlei manieren geprobeerd bv.

Dim newFont As System.drawing.font = cmbFontFamily.SelectedItem
en
Dim newFont As System.drawing.fontfamily = cmbFontFamily.SelectedItem
en nog wat dingen maar niks helpt :(

ik denk zelf dat die waarde uit cmbFontFamily.SelectedItem niet voldoet als zijnde fontfamily maar ik weet het niet zeker

wie ziet er wat ik verkeerd doe.

This space for rent. Serious inquiries only please.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Wanneer je de selected value van de combobox gebruikt, dan is dat natuurlijk een string en geen daadwerkelijke font family van het type dat VB.NET van je verwacht. Wat je wel moet gebruiken weet ik ook niet aangezien ik geen VB.NET ken, maar dàt het niet werkt is toch logisch? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • toost
  • Registratie: Januari 2002
  • Laatst online: 30-01-2025
jah opzich wel, maar daar was ik dus ook al achter (na wat gepuzzel), maar dat had ik ook al in de tekst geschreven, maar ik heb dus geen idee hoe ik hem dan, en naar wat, moet converten zodat hij het wel doet :)

This space for rent. Serious inquiries only please.


  • whoami
  • Registratie: December 2000
  • Laatst online: 07:13
Sorry hoor, maar dit is eigenlijk met een beetje zelf-onderzoek makkelijk zelf te vinden.
Als je de MSDN er eens bij pakt, zie je wat die constructor verwacht, en je ziet ook wat SelectedItem returned. De data-types van deze 2 komen niet overeen.
Je zult er dus moeten voor zorgen dat dat wel overeen komt.

Die constructor verwacht een FontFamily, wat er in jouw combobox precies staat zal een string zijn.
Je haalt al de FontFamilies op, dus deze heb je. Als je die dus bij je item in je combobox gaat bewaren, kan je 'm makkelijk terug ophalen.
Maar dat is misschien niet zo efficient. Als je dan eens verder kijkt, naar de constructors van de FontFamily Class, dan zie je dit:
code:
1
FontFamily( string name );

Dus.....

Verder doe ik dit topic dicht, aangezien het wel de bedoeling is dat je zelf ook even wat verder kijkt; je hebt vandaag eigenlijk al een paar topics geopend die best basic zijn, en mits wat goed zoekwerk, en goed gebruik maken van de tools die voorhanden zijn (msdn bv), je die problemen zelf kunt oplossen. En dat mag ook wel voor een student die bezig is aan een afstudeerproject.

https://fgheysels.github.io/


Dit topic is gesloten.