Seite 1 von 1

TextCtrl: alles Markieren beim anklicken

Verfasst: Dienstag 15. März 2011, 18:23
von ayJay
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)

Re: TextCtrl: alles Markieren beim anklicken

Verfasst: Dienstag 15. März 2011, 22:40
von ntrunk
Hi,
helfen dir wx.EVT_LEFT_UP und wx.TextCtrl.SelectAll() weiter?

Gruß
Norbert