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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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

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