Probleme mit Editfeld und setSel

sisela

Erfahrenes Mitglied
Hallo Leute,

(benutze MS VC6)
ich lese in einem normalen Editfeld ziemlich viele Daten ein, die anschließend gleich markirt werden soll. Für das EditFeld habe ich eine Control-Variable angelegt. Mit dieser versuche ich dann die setSel() aufzurufen. Leider passiert absolut gar nichts.
Code:
m_TraceDataEdit.SetSel(0, -1);
Auch wenn ich die andere Variante wähle:
Code:
m_TraceDataEdit.SetSel(0, sString.GetLength(), TRUE);
absolut nichts. Komisch ist, das es mit einem RichEdit funktioniert.

Hat jemand ähnliche Erfahrungen gemacht? Oder kann mir helfen?
Danke schon mal.
Gruß
 
der erste code funktioniert, da du den zweiten Wert vor den String gesetzt hast anstatt dahinter. Mach mal 0,2 daraus!

Oder bei der zweiten mal das True weglassen!

laut msdn sollte es dann so klappen!

sven
 
Was auch dein Fehler sein könnte ... ... .. .. .. ..
Wann rufst du diese SetSel(...) Methode auf? Rufst Du evtl. hinter dem Markieren nochmals ein UpdateData auf?

Das könnte alles wieder demarkieren.

sven
 
Danke erstmal, jedoch hilft mir das nicht weiter. Das mit updateData habe ich kontrolliert aber mache ich nicht mehr danach. Hätte ein Fehler sein können, ist es aber nicht.
Code:
m_TraceDataEdit.SetSel(0, -1);
Die -1 bedeutet in diesem Fall nur, dass der gesamte Text markiert werden soll.
Nützt aber alles nichts denn der Text ist nach wie vor nicht markiert.

:confused:
 
Ich hatte ein ähnliches Problem.
In der Hilfe zu CEdit fand ich:
"Also, if an edit control is multiline, get and set part of the control’s text by calling the CEdit member functions GetLine, SetSel, GetSel, and ReplaceSel."
Nachdem ich in den Edit-Eigenschaften "mehrzeilig" angeklickt hatte, funktionierte es.
Was das soll, habe ich aber nicht verstanden. MFC scheint mir ziemlich unlogisch zu sein, so daß ich bei einem neuen Projekt gerne einmal Qt ausprobieren würde.
 
Das sollte eigentlich genauso klappen. Hat das Edit auch den Fokus? Sonst sieht man die Selektion ja einfach nicht.
 
Hallo..
Ich stand irritiert vor dem gleichen Problem.
Der Focus-Hinweis von Endurion löste es!

Um es für andere ganz konkret zu machen, dachte ich mir, ich ergänze noch diesen Hinweis:

Wenn man vor dem SetSel m_TraceDataEdit.SetFocus(); ausführt, klappt es :)
 

Neue Beiträge

Zurück