Einzelnen Beitrag anzeigen

Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#13

Re: VCL.NET -> Winforms .NET

  Alt 6. Jun 2006, 13:47
Ich habe zwar einen Workaround gefunden, der mir aber persönlich nicht wirklich gefällt.
Und zwar setze ich den Fokus wieder per Hand auf das Memo und ändere dann die Caret-Position ebenfalls per Hand:
Delphi-Quellcode:
procedure TMDIChild.TMDIChild_KeyUp(sender: System.Object; e: System.Windows.Forms.KeyEventArgs);
begin
  // Hier werden die Cursor - Tasten abgefangen und der fokus wieder auf das Memo gelenkt:
  editor.SetFocus;
  if (e.KeyCode = Keys.Down ) then // nach unten
    editor.CurY := editor.CurY +1
  else if (e.KeyCode = Keys.Up ) then // nach unten
    editor.CurY := editor.CurY -1
  else if (e.KeyCode = Keys.Left ) then // nach unten
    editor.CurX := editor.CurX -1
  else if (e.KeyCode = Keys.Right ) then // nach unten
    editor.CurX := editor.CurX +1;
end;
Aber wie gesagt, es ist nicht wirklich befriedigend. Vor allem auch deswegen, dass der Fokus immer noch hin und her springt. Sprich anfangs hat das Memo den Fokus, dann wird z.b. die Up-Taste gedrückt, dann bekommt das nächste Control den Fokus und zack hat der Editor wieder den Fokus. Das entsprechende Control blinkt dann so schrecklich. Ich habe mal eine Testanwendung gemacht. Seht selbst.

Habt ihr bessere Ideen/Lösungen?
Angehängte Dateien
Dateityp: zip project1_109.zip (588,9 KB, 4x aufgerufen)
Alexander
  Mit Zitat antworten Zitat