Hallo zusammen,
ich habe ein kleines Problem wo ich aktuell nicht weiterkomme und auch nichts zu gefunden habe. Ich habe in der Anwendung eine normale Textbox Control
und zwei dazugehörige Events einmal KeyDown und KeyPress. Das kopieren und das ausschneiden funktioniert ohne Probleme. Beim Einfügen aus dem Clipboard
gibt es allerdings noch ein Problem.
Wenn ich in dieser mehrzeiligen Textbox mit der rechten Maustaste klicke und im Kontextmenü auf "Einfügen" klicke, ich alles in Ordnung. Es wird nichts doppelt eingefügt.
Klick ich aber in die leere Textbox und drücke Strg+V, wird egal welcher Text das ist, dieser doppelt eingefügt. So als würde das Event zweimal abgefeuert. Ich habe
das Debuggt es wird so weit ich das sehen kann nicht zwei mal abgefeuert.
Ich habe nun etliche Konstallationen durch, bis jetzt hat nichts geholfen.
Ich bin mir aber sicher, dass es irgendwie mit dem Event zu tun hat.
Hier einmal der Code
Hat einer von euch das auch schon mal gehabt?
Wie kann man das dauerhaft lösen, dass es nicht zum doppelten Einfügen kommen kann?
Dank euch schon mal
ich habe ein kleines Problem wo ich aktuell nicht weiterkomme und auch nichts zu gefunden habe. Ich habe in der Anwendung eine normale Textbox Control
und zwei dazugehörige Events einmal KeyDown und KeyPress. Das kopieren und das ausschneiden funktioniert ohne Probleme. Beim Einfügen aus dem Clipboard
gibt es allerdings noch ein Problem.
Wenn ich in dieser mehrzeiligen Textbox mit der rechten Maustaste klicke und im Kontextmenü auf "Einfügen" klicke, ich alles in Ordnung. Es wird nichts doppelt eingefügt.
Klick ich aber in die leere Textbox und drücke Strg+V, wird egal welcher Text das ist, dieser doppelt eingefügt. So als würde das Event zweimal abgefeuert. Ich habe
das Debuggt es wird so weit ich das sehen kann nicht zwei mal abgefeuert.
Ich habe nun etliche Konstallationen durch, bis jetzt hat nichts geholfen.
Ich bin mir aber sicher, dass es irgendwie mit dem Event zu tun hat.
Hier einmal der Code
VB.NET-Quellcode
- ''' <summary>
- ''' Textfeld Mail_Password_Settings_Mailbody, kopieren, einfügen, ausschneiden
- ''' </summary>
- ''' <param name="sender"></param>
- ''' <param name="e"></param>
- Private Sub txt_Mail_Password_Settings_Mailbody_KeyDown(sender As Object, e As KeyEventArgs) Handles txt_Mail_Password_Settings_Mailbody.KeyDown
- Dim sTmpString As String = ""
- If Clipboard.ContainsText Then 'nur Texte einfügen
- If (e.KeyCode = Keys.V) AndAlso (e.Modifiers = Keys.Control) Then
- If txt_Mail_Password_Settings_Mailbody.SelectedText = Nothing Then
- sTmpString = Clipboard.GetText()
- sTmpString = sTmpString.Replace("'", "") 'entferne >> '
- txt_Mail_Password_Settings_Mailbody.Text = sTmpString
- Else
- sTmpString = txt_Mail_Password_Settings_Mailbody.Text & Clipboard.GetText()
- sTmpString = sTmpString.Replace("'", "") 'entferne >> '
- txt_Mail_Password_Settings_Mailbody.Text = sTmpString
- End If
- End If
- End If
- 'kopieren
- If e.Control And e.KeyCode = Keys.C Then
- If txt_Mail_Password_Settings_Mailbody.SelectionLength > 0 Then
- txt_Mail_Password_Settings_Mailbody.Copy()
- End If
- End If
- 'ausschneiden
- If e.Control And e.KeyCode = Keys.X Then
- If txt_Mail_Password_Settings_Mailbody.SelectionLength > 0 Then
- txt_Mail_Password_Settings_Mailbody.Cut()
- End If
- End If
- End Sub
- ''' <summary>
- ''' Zeichensatz beschränken kein ' Zeichen
- ''' </summary>
- ''' <param name="sender"></param>
- ''' <param name="e"></param>
- Private Sub txt_Mail_Password_Settings_Mailbody_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txt_Mail_Password_Settings_Mailbody.KeyPress
- Select Case Asc(e.KeyChar)
- Case 39
- e.Handled = True
- Case Else
- e.Handled = False
- End Select
- End Sub
Hat einer von euch das auch schon mal gehabt?
Wie kann man das dauerhaft lösen, dass es nicht zum doppelten Einfügen kommen kann?
Dank euch schon mal
VG steel