Hallo Ihr Profis,
grüble wieder an einer Fehlermeldung, die ich nicht zuordnen kann.
ich lade mit folgendem Code eine RTF-Datei (Anzahl Zeichen: 3182) in meine RTFBox
Zu dieser RTFBox gibt es eine INI-Einstellungsdatei, in welcher u.a. die CursorPos und SelectionLength der letzten Bearbeitung stehen.
Beispiel:
(Das sind tatsächlich drei Zeilen)
Versucht ich, die letzte Cursorpos und SelectionLength zu setzen und dann mit ScrollToCaret das geladene Dokument auf die CursorPos zu scrollen, wird aber immer ein Fehler generiert.
Der Code:
Die Fehlermeldung:
Wenn ich den Befehl " tsc_TextEditor_RTFBox.ScrollToCaret()" auskommentiere, erscheint der Fehler nicht und die Cursorposition und selectionLänge werden korrekt gesetzt - sind dann aber leider u.U. nicht im sichtbaren Bereich der RTFBox.
Woran könnte das liegen?
Ich finde im Netz überhaupt keine Erklärung und keine Lösung.
Kann es sein, weil das Dokument zwar der RTF zugewiesen, aber noch nicht in dieser angezeigt ist?
Wie kann ich dieses Problem beseitigen?
Wäre toll, wenn mir da einer einen Tip geben könnte.
EDIT:
Habe schon mit
vor dem ".scrolltocaret" experimentiert - erfolglos.
Beste Grüsse
grüble wieder an einer Fehlermeldung, die ich nicht zuordnen kann.
ich lade mit folgendem Code eine RTF-Datei (Anzahl Zeichen: 3182) in meine RTFBox
Zu dieser RTFBox gibt es eine INI-Einstellungsdatei, in welcher u.a. die CursorPos und SelectionLength der letzten Bearbeitung stehen.
Beispiel:
[ScrollPosition]
Position=1166
Länge=108
(Das sind tatsächlich drei Zeilen)
Versucht ich, die letzte Cursorpos und SelectionLength zu setzen und dann mit ScrollToCaret das geladene Dokument auf die CursorPos zu scrollen, wird aber immer ein Fehler generiert.
Der Code:
VB.NET-Quellcode
- ' Dokument in RTFBox laden
- tsc_TextEditor_RTFBox.Text = System.IO.File.ReadAllText(name, System.Text.Encoding.GetEncoding(encodingSplit(0)))
- ' Caret-Pos und Length setzen
- ' Aus INI auslesen
- Dim inipfad As String = IO.Path.Combine(IO.Path.GetDirectoryName(name), IO.Path.GetFileName(name) & ".ice")
- If IO.File.Exists(inipfad) = True Then
- Dim CaretPosition As Integer = CInt(INIWertLesen(inipfad, "ScrollPosition", "Position", "0"))
- Dim selLänge As Integer = CInt(INIWertLesen(inipfad, "ScrollPosition", "Länge", "0"))
- If CaretPosition > 0 AndAlso (CaretPosition + selLänge) <= tsc_TextEditor_RTFBox.Text.Length Then
- Try
- tsc_TextEditor_RTFBox.SuspendLayout()
- tsc_TextEditor_RTFBox.SelectionStart = CaretPosition
- tsc_TextEditor_RTFBox.SelectionLength = selLänge
- tsc_TextEditor_RTFBox.Focus()
- tsc_TextEditor_RTFBox.ScrollToCaret()
- tsc_TextEditor_RTFBox.ResumeLayout()
- Catch ex As system.Exception
- tsc_TextEditor_RTFBox.Text = "Fehler beim Setzen des Caret:" & vbCrLf & vbCrLf & Chr(34) & "file:" & name & Chr(34) & vbCrLf & vbCrLf & "Grund: " & ex.Message
- End Try
- End If
- End If
- End If
Die Fehlermeldung:
Die für diesen Vorgang erforderlichen Daten sind noch nicht verfügbar. (Ausnahme von HRESULT: 0x8000000A)
Wenn ich den Befehl " tsc_TextEditor_RTFBox.ScrollToCaret()" auskommentiere, erscheint der Fehler nicht und die Cursorposition und selectionLänge werden korrekt gesetzt - sind dann aber leider u.U. nicht im sichtbaren Bereich der RTFBox.
Woran könnte das liegen?
Ich finde im Netz überhaupt keine Erklärung und keine Lösung.
Kann es sein, weil das Dokument zwar der RTF zugewiesen, aber noch nicht in dieser angezeigt ist?
Wie kann ich dieses Problem beseitigen?
Wäre toll, wenn mir da einer einen Tip geben könnte.
EDIT:
Habe schon mit
vor dem ".scrolltocaret" experimentiert - erfolglos.
Beste Grüsse
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dideldum“ ()