RichTextBox   zodpovězená otázka

VB.NET, WinForms

Zdravím

následující kód má zajistit aby se mi do ComboBoxu v ToolStript vypsal název fontu zvoleného v RichTextBox. Funguje. Problém však nastává při zvolení výběru s více fonty. RichTextBox1.SelectionFont.OriginalFontName se pak rovná Nothing:

    Private Sub RichTextBox1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextBox1.SelectionChanged
        Dim Font As Integer = 0
        Dim SelFont = ""
        If (RichTextBox1.SelectionFont.OriginalFontName <> Nothing) Then
            SelFont = RichTextBox1.SelectionFont.OriginalFontName
        Else
            MsgBox("Err")
        End If

        Select Case SelFont
            Case "Microsoft Sans Serif" : Font = 1
            Case ("Arial") : Font = 2
            Case "Arial Bold" : Font = 3
            Case "Tahoma" : Font = 4
            Case "Verdana" : Font = 5
            Case "Times New Roman" : Font = 6
            Case "Courier New" : Font = 7
            Case "Courier" : Font = 8
            Case "Papyrus" : Font = 9
            Case Else : Font = 0
        End Select
        ToolStripComboBox1.SelectedIndex = Font
        Dim Size As Integer = 0
        Size = RichTextBox1.SelectionFont.Size
        ToolStripTextBox1.Text = Size.ToString()
    End Sub

Prosím, poraďte!

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud vám stačí vypsat pouze font pro první znak z výběru, potom si uložte hodnotu RichTextBox1.SelectionLength do nějaké proměnné. Pak tuto vlastnost nastavte na nulu (tím se zruší výběr), zjistěte si font a na konec zase do této vlastnosti vraťte hodnotu z proměnné, aby se výběr zachoval.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Zdravím,

je to zajímavé řešení, ale jde mi o to, aby skript poznal, že je ve výběru více fontů a podle toho nastavil index v ComboBoxu na index s hodnotou "Více typů písem".

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Aha, neprohlédnul jsem si pořádně Váš zdrojový kód. Jak tam máte ...OriginalFontName <> Nothing, v tom je ten problém. Pokud porovnáváme s Nothing, musíme použít operátory Is a IsNot.

Správně tedy má být ...OriginalFontName IsNot Nothing.

A do té větve Else dejte to nastavení ComboBoxu na hodnotu více typů písma a pak za tím dejte Exit Sub, aby se neprováděly další příkazy, které by mohly hodit chybu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Having the script detect when there are several fonts in the selection and then setting the ComboBox index to the index with the value "Multiple Fonts" is an intriguing option. https://run3online.io

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback