enter v RTB   otázka

VB.NET, WinForms

zdravím, chcem v richtextboxe po stlačení klávesy enter to textu vložiť nejaké slovo:

    Private Sub RichTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles RichTextBox1.KeyPress
        If e.KeyChar = vbCr Then
            Me.RichTextBox1.Text += "slovo"
        End If
    End Sub

no problém je že okrem vloženia tohto slova sa mi to textu vloží aj nový riadok, a to práve nechcem,

vie mi niekto povedať ako tomu zabránim?

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

Předpokládám, že RichTextBox bude mít funkci append, která vloží text na konec. Zkuste se po ní podívat.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
    Private Sub RichTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles RichTextBox1.KeyPress
        If e.KeyChar = vbCr Then
            Me.RichTextBox1.AppendText("vstup")
        End If
    End Sub

funguje to lenže stále sa po stlačení enter najprv do textu vloží nový riadok a potom ten text, a mne hlavne ide o to aby sa tam žiaden nový riadok neobjavoval

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

A jak potom dosáhnete toho, když uživatel bude chtít odřádkovat?

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

robím si program na pohodlné prekladanie titulkov takže tam riadkovanie nepotrebujem, respektíve si to vyriešim v programe enterom chcem vykonávať iné veci

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

Myslím že se snažíte zcela zbytečně, takových programů existují desítky a těžko uděláte něco lepšího než například Subtitle Workshop (už jen tím kolik formátů titulků existuje).

K danému problému: V události KeyDown stačí zjistit zda-li se jedná o klávesu Enter a nastavením Handled zajistíte, že klávesa se nebude dále zpracovávat.

Private Sub RichTextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown
  If e.KeyCode = Keys.Enter Then
    RichTextBox1.Text = "Text"
    e.Handled = True
  End If
End Sub

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

vďaka, a ten program robím skôr zo zábavy neočakávam od neho nič výnimočné

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