| |
Visual-Basic EinsteigerRe: STRG +V abfangen | | | Autor: Franki | Datum: 11.12.14 08:35 |
| Hallo,
die Zwischenablage grundsätzlich bei Aktivierung des Textfeldes zu leeren halte ich für keine gute Idee.
Denn der User kann bewußt Daten in der Zwischenablage haben (Aus anderen Programmen / für andere Programme) ohne sie überhaupt in dein Textfeld einfügen zu wollen.
Ich würde nur auf den gezielten Eifügeversuch reagieren und nicht schon bei Aktivierung des Textfeldes wo der User auch tippen kann ihm seine Zwischenablage zerschiessen.
Gruß
Frank | |
Re: STRG +V abfangen | | | Autor: effeff | Datum: 11.12.14 12:09 |
| Genau... Und zusätzlich muss man eben darauf achten, auch die rechte Maustaste abzufangen, damit niemand aus deren entstehenden Kontextmenü "Einfügen" auswählt.
EALA FREYA FRESENA | |
Re: STRG +V abfangen | | | Autor: Franki | Datum: 12.12.14 07:38 |
| Hallo,
ja auch das, aber auch hier müsste man nur diesen Menüpunkt im sonst durchaus sinnvollen Kontextmenü abfangen und nicht gleich das ganze Kontextmenü.
Wenn man von der Voraussetzung ausgehen kann, dass der User mehr als ein Zeichen aus der Zwischenablage einfügen möchte und der eingefügte Inhalt länger ist als der vorherige kann man auch folgenden Gedankengang umsetzten.
Es wird ja das Change Event ausgelöst wenn sich der Inhalt der Textbox ändert.
Ist der Inhalt um genau ein Zeichen länger wurde (höchstwahrscheinlich) getippt, ist der neue Inhalt größer als ein Zeichen wurde auf welche Art auch immer eingefügt.
Beispiel ohne Fehlerprüfung usw.
Private Sub Form_Load()
Text1.Tag = Len(Text1.Text)
End Sub
Private Sub Text1_Change()
If Len(Text1.Text) > CInt(Text1.Tag) Then
If Len(Text1.Text) - CInt(Text1.Tag) > 1 Then
MsgBox "Es wurde eingefügt, hier entsprechend reagieren"
Text1.Text = ""
Else
MsgBox "Es wurde getippt"
Text1.Tag = Len(Text1.Text)
End If
Else
Text1.Tag = Len(Text1.Text)
End If
End Sub Wenn man das als gegeben hinnehmen kann erübrigt sich die Abfrage auf Tastenkombinationen, Kontextmenü usw.
Ich habe das vor Jahren auf diese Art gelöst als es darum ging Barcodes von einem Barcodescanner zu unterbinden wenn der Cursor im falschen Feld stand. Da habe ich die falsche Textbox aber nicht geändert sondern entsprechend der Anwendung anders reagiert.
Vielleicht ist diese Methode für V A T ja auch eine Alternative.
Gruß
Frank
| |
Re: STRG +V abfangen | | | Autor: effeff | Datum: 12.12.14 10:25 |
| Aber was machst Du, wenn nur ein Zeichen aus der Zwischenablage eingefügt wurde?
EALA FREYA FRESENA | |
Re: STRG +V abfangen | | | Autor: VAT | Datum: 12.12.14 19:25 |
| Hallo Frank,
Danke für deine ergänzenden Gedankengänge. Ich habe jetzt drei Möglichkeiten, die ich sinnvoll einsetzen kann. Deine Idee finde ich spannend. Das ist - auch für einen Amateur 😊 wie mich - verständlich und wuerde in meinem Kontext den Sinn voll erfüllen.
Da es mich aber auch nicht stört, dass die Zeischenablage komplett gelöscht wird (ich verstehe, dass das in anderem Kontext problematisch sein kann, bei mir nicht), ist das die schnellste Loesung. Aber wie gesagt, dein "Trick" hat was!
Jedenfalls danke an alle, die mir wieder mal geholfen haben!
Gruß
V A T
| |
Re: STRG +V abfangen | | | Autor: Franki | Datum: 13.12.14 08:11 |
| Hallo,
gar nichts, deswegen hatte ich ja geschrieben:
Zitat: | | Wenn man von der Voraussetzung ausgehen kann, dass der User mehr als ein Zeichen aus der Zwischenablage einfügen möchte | |
Wenn man natürlich auch unterbinden möchte/muss, dass nur ein Zeichen eingefügt werden kann taugt mein Vorschlag nichts. Aber kommt so was in der Praxis bzw. im konkreten Fall vor? Bei einem normalen Zeichen ist ja tippen sowieso schneller als einfügen.
Gruß
Frank | |
Re: STRG +V abfangen | | | Autor: Franki | Datum: 13.12.14 08:18 |
| Hallo,
Zitat: | |
Da es mich aber auch nicht stört, dass die Zeischenablage
komplett gelöscht wird (ich verstehe, dass das in anderem
Kontext problematisch sein kann, bei mir nicht)
| |
Bist du der alleinige User deines Programms bzw. läuft es nur auf deinem PC?
Wenn ja, kannst du sagen, dass es dich nicht stört, aber dann stellt sich die Frage wieso du das überhaupt unterbinden möchtest, du selbst könntest ja einfach tippen anstatt einzufügen.
Wenn nein hast du keinerlei Kenntnisse oder gar Einfluss darauf wofür die User die Zwischenablage verwenden, es stört zwar dich nicht, aber mit Sicherheit die User. Und irgend einen Grund hat es ja, dass du diese Frage überhaupt stellst, es scheint schon so zu sein, dass der Unterschied woher die Daten ins Textfeld kommen für dein Programm wichtig ist.
Gruß
Frank | |
Re: STRG +V abfangen | | | Autor: VAT | Datum: 14.12.14 20:43 |
| Hallo Frank,
ich denke ich kann das schon beurteilen...
der Rechner wird von meinem Sohn zum Lernen verwendet und ich hab ihm einen Vokabeltrainer geschrieben. Und die Vokabeln soll man auswendig können und nicht wie das pfiffige Kerlchen auch mal per copy und past einfügen.
da nur er den Rechner benutzt und auch nur wenn ich ihm das Ding anmache, ist es in diesem einem von mir gut beurteilenden fall unerheblich, dass die Zwischenablage gelöscht wird. wie gesagt, ich kann gut nachvollziehen, dass es in einem anderen Kontext nicht egal wäre.
Also, nochmals danke für eure Hilfe! ich habe - wie schon gesagt - viel gelernt. Einmal programmiertechnisch und auch im Bezug auf die Risiken und Nebenwirkungen im Thema zwischenablage.
Danke!!!
V A T | |
Re: STRG +V abfangen | | | Autor: Franki | Datum: 14.12.14 22:54 |
| Hallo,
da bist du ja sozusagen ein Leidensgenosse von mir. Ich habe auch mal einen Vokabeltrainer im familiären Bereich programmiert, der wird sogar heute noch von einer Schule verwendet.
Damals war die Herausforderung nicht die Zwischenablage, sondern dass die Nutzung des Vokabeltrainers Priorität hat und erst danach mit dem Rechner z.B. andere Anwendungen (WKW/Facebook usw.) bzw. das Web genutzt werden kann.
Aber das Thema Vokabeltrainer an sich interessiert mich nach wie vor, es ist jetzt hier im Forum OT, wenn du magst kontaktiere mich mal per E-Mail.
Gruß
Frank
| |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|