eerste en volgende lijnen naar uppercase?

Status
Niet open voor verdere reacties.

Dummy1912

Gebruiker
Lid geworden
26 mrt 2010
Berichten
362
Hi,

Ik heb een vraag
Hoe kan ik de eerste letter naar uppercase brengen enkel de eerste letters
BV (Hallo
Hoe gaat het.)

En de volgende lijnen ook
Telkens als ik de return toets klik

Ik heb hier een code maar het werkt perfect maar telkens als ik de kleur en de letter
grote aanpas verdwijnen ze weer naar normaal.

Iemand een idee of iemand dat de code kan aanpassen aub.

bedankt

Code:
 Private Sub RichTextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyUp
        If e.KeyCode = Keys.Enter Then
            Try
                ' get lines to add a uppercase

                Dim lines As String() = Me.RichTextBox1.Lines

                ' capitalize first letter in each line
                Dim changed As Boolean = False
                Dim i As Integer = 0
                While i < lines.Length
                    Dim line As String = lines(i)
                    If line.Length > 0 AndAlso Char.IsLower(line.Chars(0)) Then
                        lines(i) = Char.ToUpper(line.Chars(0)).ToString() + line.Substring(1)
                        changed = True
                    End If
                    System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
                End While

                Dim start As Integer = RichTextBox1.SelectionStart
                Dim length As Integer = RichTextBox1.SelectionLength

                ' apply changes (if any)
                If changed Then
                    RichTextBox1.Lines = lines
                    RichTextBox1.[Select](start, length)
                End If


                ' save selection

                ' paste lines
                RichTextBox1.Lines = lines

                ' restore selection
                RichTextBox1.[Select](start, length)

            Catch ex As Exception
            End Try
        End If
    End Sub

Bedankt

Dummy1912
 
het werkt perfect maar telkens als ik de kleur en de letter
grote aanpas verdwijnen ze weer naar normaal.
Dit kan ik niet verklaren. Ik zie niets in jouw code waardoor eenmaal geplaatste hoofdletters weer terug zouden veranderen.

Hoe pas je kleur en letter grootte dan aan? Wat gebeurt daar allemaal precies?
 
Hey,

Code:
        ColorDialog1.Color = RichTextBox1.ForeColor

        If ColorDialog1.ShowDialog = DialogResult.OK Then
            RichTextBox1.SelectionColor = ColorDialog1.Color
            RichTextBox1.Focus()
        End If

hiermee bepaal je de kleur maar dat wist je al :)
en voor de font

Code:
        If Not RichTextBox1.SelectionFont Is Nothing Then
            FontDialog1.Font = RichTextBox1.SelectionFont
        Else
            FontDialog1.Font = Nothing
            RichTextBox1.Focus()
        End If

        FontDialog1.ShowApply = True

        If FontDialog1.ShowDialog() = DialogResult.OK Then
            RichTextBox1.SelectionFont = FontDialog1.Font
            RichTextBox1.Focus()
        End If

maar telkens als je terug op return klik veranderd het terug naar normaal
ik zal zeggen ik doe er een demo bij maar weet ni hoe ik deze hier moet plaatsen.
ik heb het in een zip geplaats.
Dan denk ik dat je het beter zou begrijpen.
Bedankt voor je reactie.

Dummy1912
 
veranderen je hoofdletters terug?
of veranderen kleur en lettergrootte terug?
heb ik verkeerd zitten lezen??
 
O sorry

Nee de hoofdletters blijven staan :)
tis enkel de kleur en font dat niet blijven staan.

Dummy1912
 
Die code voor kleur en font zetten moet je dan zo doen:
Code:
        ColorDialog1.Color = RichTextBox1.ForeColor

        If ColorDialog1.ShowDialog = DialogResult.OK Then
            RichTextBox1.ForeColor = ColorDialog1.Color
            RichTextBox1.Focus()
        End If


        If Not RichTextBox1.SelectionFont Is Nothing Then
            FontDialog1.Font = RichTextBox1.SelectionFont
        Else
            FontDialog1.Font = Nothing
            RichTextBox1.Focus()
        End If

        FontDialog1.ShowApply = True

        If FontDialog1.ShowDialog() = DialogResult.OK Then
            RichTextBox1.Font = FontDialog1.Font
            RichTextBox1.Focus()
        End If
(ik heb maar twee regeltjes aangepast;))
werkt het zo beter?
 
Heb het even getest
Nee het werkt niet hoe het moet
alles veranderd van kleur en van font

het moet zo zijn:

Hi
Hallo
Test

enkel de woorden dat je zelf wilt die een kleur moeten hebben
en een andere font
niet allemaal :)

toch bedankt
Nog andere ideeën?

Dummy1912
 
Je moet niet Font e.d. in het algeem aanpassen maar enkel bij de Selection. Dus iets van Selection.Font = ...:thumb:
 
Hi,

??? kan je even meer uitleg geven aub.
Want ik geloof dat ik selection.font al heb gebruikt of ben ik verkeerd?

Dummy1912
 
OK ik snap wat het probleem is.

In jouw richtextbox verschilt de font/color misschien per regel en zelfs per woord.

Je gebruikt een array van strings om je tekst mee te onthouden:

Code:
   Dim lines As String() = Me.RichTextBox1.Lines
   ...
   ...(hoofdletters worden geregeld)
   ...
   RichTextBox1.Lines = lines

En dan ben je alle font en color informatie kwijt.

oplossing weet ik zo gauw niet op dit moment.
 
Juist ja :)

Aja okay ik begrijp het
Wel moest je iets vinden dan hoor ik het graag.

Alvast Bedankt
evertVB

Dummy1912
 
Als de Lines gelijk lopen met de tekst kun je toch op zoeken vanaf welke Char een lijn begint?
 
Sorry SuperAbc,
Maar ik begrijp je niet goed.

Wat wil je hier mee zeggen aub
Heb je een vb?

Dummy1912
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan