TextCtrl: alles Markieren beim anklicken

Plattformunabhängige GUIs mit wxWidgets.
Antworten
ayJay
User
Beiträge: 17
Registriert: Dienstag 20. Mai 2008, 01:10

Hallo,

ich suche nach einer Moeglichkeit, den Inhalt eines TextCtrl komplett zu markieren, wenn man es anklickt. Mit SET_FOCUS hatte ich bisher keinen Erfolg, und beim Googlen hab ich etwas in der Richtung gefunden:
geht nicht, da durch Anklicken der Cursor gesetzt wird, und dadurch eine Markierung geloescht wird. Workaround: mit CallLater ein paar ms spaeter die Markierung erneut setzen
... und das kanns ja wohl nicht sein? :shock:

Code: Alles auswählen

self.textctrl.Bind(wx.EVT_SET_FOCUS, self.onFocus)

def onFocus(self, event):
  self.textctrl.SetSelection(-1, -1)
edit: Ich habe es jetzt hinbekommen, mit CallAfter. Ist das der bestmoegliche Weg? So kann es immerhin keine seltsamen race conditions geben...

Code: Alles auswählen

    def onFocus(self, event):
      def selectAll():
        self.textctrl.SetSelection(-1, -1)
      wx.CallAfter(selectAll)
Wars don't determine who's right - only who's left
ntrunk
User
Beiträge: 83
Registriert: Sonntag 7. September 2008, 23:09
Wohnort: Buchen (Odenwald)

Hi,
helfen dir wx.EVT_LEFT_UP und wx.TextCtrl.SelectAll() weiter?

Gruß
Norbert
Antworten