Hallo ihr lieben,
ich habe mit ChatGTP einen Texteditor programmiert und es geht auch aber nicht, dass ich mit einem Doppelklick auf das Dokument, den Inhalt in die RichTextbox bekomme.
Mein Code, den ich bisher habe, ist:
Spoiler anzeigen
Kann irgendwer mir sagen, welchen Code ich verwenden muss?
*Topic verschoben, EXE-Anhang entfernt*
ich habe mit ChatGTP einen Texteditor programmiert und es geht auch aber nicht, dass ich mit einem Doppelklick auf das Dokument, den Inhalt in die RichTextbox bekomme.
Mein Code, den ich bisher habe, ist:
VB.NET-Quellcode
- Imports System.IO
- Imports System.Drawing.Text
- Public Class Form1
- Inherits Form ' Fügt die Form-Klasse hinzu, von der Ihre Klasse erbt
- ' Deklaration von Variablen und Initialisierung
- Private fontSizes As New List(Of Integer) From {8, 10, 11, 12, 14, 16, 18, 20}
- Private selectedColor As Color = Color.Black ' Standardfarbe ist Schwarz
- Private autoSaveEnabled As Boolean = False ' Variable für automatisches Speichern
- Private lastFilePath As String = "" ' Speichert den zuletzt überwachten Dateipfad
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- ' Verknüpfen von Ereignishandlern
- AddHandler cmbFontSize.SelectedIndexChanged, AddressOf CmbFontSize_SelectedIndexChanged
- AddHandler cmbFontFamily.SelectedIndexChanged, AddressOf CmbFontFamily_SelectedIndexChanged
- AddHandler btnBlack.Click, AddressOf ColorButton_Click
- AddHandler btnRed.Click, AddressOf ColorButton_Click
- AddHandler btnBold.Click, AddressOf BtnBold_Click
- AddHandler btnItalic.Click, AddressOf BtnItalic_Click
- AddHandler btnUnderline.Click, AddressOf BtnUnderline_Click
- AddHandler Me.DoubleClick, AddressOf DesktopDoubleClickHandler
- ' Befüllen des Dropdown-Menüs mit den Schriftgrößen
- For Each fontSize As Integer In fontSizes
- cmbFontSize.Items.Add(fontSize)
- Next
- ' Festlegen der Standard-Schriftgröße
- cmbFontSize.SelectedIndex = 2
- ' Laden der installierten Schriftarten in die ComboBox
- Dim installedFonts As New InstalledFontCollection()
- For Each font As FontFamily In installedFonts.Families
- cmbFontFamily.Items.Add(font.Name)
- Next
- ' Hinzufügen des RichTextBox-Steuerelements
- With txtEditor
- .Multiline = True
- .AllowDrop = True
- End With
- Me.Controls.Add(txtEditor)
- ' Laden der gespeicherten Einstellungen beim Laden des Formulars
- LoadSettings()
- End Sub
- Private Sub LoadFile(filePath As String, fileExtension As String)
- Try
- If filePath.EndsWith(".txt", StringComparison.OrdinalIgnoreCase) Then
- ' Öffnen als TXT-Datei
- txtEditor.LoadFile(filePath, RichTextBoxStreamType.PlainText)
- ElseIf filePath.EndsWith(".rtf", StringComparison.OrdinalIgnoreCase) Then
- ' Öffnen als RTF-Datei
- txtEditor.LoadFile(filePath)
- Else
- MessageBox.Show("Das Dateiformat wird nicht unterstützt.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End If
- Catch ex As Exception
- MessageBox.Show("Fehler beim Öffnen der Datei: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End Try
- End Sub
- Private Sub LoadSettings()
- ' Laden der zuletzt ausgewählten Schriftgröße aus den gespeicherten Einstellungen, falls gültig
- If My.Settings.FontSize >= 0 AndAlso My.Settings.FontSize < fontSizes.Count Then
- cmbFontSize.SelectedIndex = My.Settings.FontSize
- End If
- ' Laden der zuletzt ausgewählten Schriftart aus den gespeicherten Einstellungen, falls gültig
- If Not String.IsNullOrEmpty(My.Settings.SelectedFont) AndAlso cmbFontFamily.Items.Contains(My.Settings.SelectedFont) Then
- cmbFontFamily.SelectedItem = My.Settings.SelectedFont
- End If
- ' Laden der zuletzt ausgewählten Farbe aus den gespeicherten Einstellungen
- selectedColor = My.Settings.SelectedColor
- ' Laden des Status des automatischen Speicherns
- autoSaveEnabled = My.Settings.AutoSaveEnabled
- AutomatischesSpeichernToolStripMenuItem.Checked = autoSaveEnabled
- ' Laden des zuletzt geöffneten Textes aus den gespeicherten Einstellungen, wenn automatisches Speichern aktiviert ist
- If autoSaveEnabled AndAlso Not String.IsNullOrEmpty(My.Settings.LastText) Then
- txtEditor.Rtf = My.Settings.LastText
- End If
- End Sub
- Private Sub SaveSettings()
- ' Speichern der ausgewählten Schriftgröße in den Einstellungen
- My.Settings.FontSize = cmbFontSize.SelectedIndex
- ' Speichern der ausgewählten Schriftart in den Einstellungen
- My.Settings.SelectedFont = cmbFontFamily.SelectedItem.ToString()
- ' Speichern der ausgewählten Farbe in den Einstellungen
- My.Settings.SelectedColor = selectedColor
- ' Speichern des aktuellen Textes in den Einstellungen
- My.Settings.LastText = txtEditor.Rtf
- ' Speichern des Status des automatischen Speicherns
- My.Settings.AutoSaveEnabled = autoSaveEnabled
- ' Speichern der Einstellungen
- My.Settings.Save()
- End Sub
- Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
- ' Speichern der Einstellungen beim Schließen des Formulars
- SaveSettings()
- End Sub
- Private Sub CmbFontFamily_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbFontFamily.SelectedIndexChanged
- ' Anwenden der ausgewählten Schriftart auf den Text
- If cmbFontFamily.SelectedIndex <> -1 Then
- Dim fontFamily As String = cmbFontFamily.SelectedItem.ToString()
- Dim currentFont As Font = txtEditor.SelectionFont
- Dim newFont As New Font(fontFamily, currentFont.Size, currentFont.Style)
- txtEditor.SelectionFont = newFont
- txtEditor.Focus()
- End If
- End Sub
- Private Sub CmbFontSize_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbFontSize.SelectedIndexChanged
- ' Speichern der aktuellen Auswahl
- Dim selectionStart As Integer = txtEditor.SelectionStart
- Dim selectionLength As Integer = txtEditor.SelectionLength
- Dim selectedText As String = txtEditor.SelectedText
- Dim originalFont As Font = txtEditor.SelectionFont
- Dim originalColor As Color = txtEditor.SelectionColor
- ' Ändern der Schriftgröße
- Dim selectedSize As Integer = fontSizes(cmbFontSize.SelectedIndex)
- txtEditor.SelectionFont = New Font("Arial", selectedSize)
- ' Wiederherstellen der vorherigen Auswahl
- txtEditor.Select(selectionStart, selectionLength)
- txtEditor.SelectedText = selectedText
- txtEditor.Select(selectionStart, selectedText.Length)
- End Sub
- Private Sub ColorButton_Click(sender As Object, e As EventArgs)
- Dim btn As Button = DirectCast(sender, Button)
- Dim selectionStart As Integer = txtEditor.SelectionStart
- Dim selectionLength As Integer = txtEditor.SelectionLength
- ' Überprüfen, ob Text ausgewählt ist
- If selectionLength > 0 Then
- ' Text ist ausgewählt, ändere Farbe des ausgewählten Textes zeichenweise
- For i As Integer = selectionStart To selectionStart + selectionLength - 1
- txtEditor.SelectionStart = i
- txtEditor.SelectionLength = 1
- Select Case btn.Name
- Case "btnBlack"
- txtEditor.SelectionColor = Color.Black
- Case "btnRed"
- txtEditor.SelectionColor = Color.Red
- Case "btnBlue"
- txtEditor.SelectionColor = Color.Blue
- Case "btnGreen"
- txtEditor.SelectionColor = Color.Green
- End Select
- Next
- Else
- ' Text ist nicht ausgewählt, ändere Farbe für den gesamten neuen Text
- txtEditor.SelectionStart = 0
- txtEditor.SelectionLength = txtEditor.Text.Length
- Select Case btn.Name
- Case "btnBlack"
- txtEditor.ForeColor = Color.Black
- Case "btnRed"
- txtEditor.ForeColor = Color.Red
- Case "btnBlue"
- txtEditor.SelectionColor = Color.Blue
- Case "btnGreen"
- txtEditor.SelectionColor = Color.Green
- End Select
- End If
- ' Wiederherstellen der vorherigen Auswahl
- txtEditor.Select(selectionStart, selectionLength)
- End Sub
- Private Sub AutomatischesSpeichernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AutomatischesSpeichernToolStripMenuItem.Click
- ' Toggle für automatisches Speichern
- autoSaveEnabled = Not autoSaveEnabled
- AutomatischesSpeichernToolStripMenuItem.Checked = autoSaveEnabled
- ' Wenn das automatische Speichern aktiviert ist, speichern Sie die aktuellen Einstellungen
- If autoSaveEnabled = True Then
- SaveSettings()
- End If
- End Sub
- Private Sub TxtEditor_DragDrop(sender As Object, e As DragEventArgs) Handles txtEditor.DragDrop
- If e.Data.GetDataPresent(DataFormats.FileDrop) Then
- Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
- If files IsNot Nothing AndAlso files.Length > 0 Then
- Dim filePath As String = files(0)
- Dim fileExtension As String = Path.GetExtension(filePath).ToLower()
- If File.Exists(filePath) AndAlso (fileExtension = ".txt" OrElse fileExtension = ".rtf") Then
- Try
- LoadFile(filePath, fileExtension)
- Catch ex As Exception
- MessageBox.Show("Fehler beim Laden der Datei: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End Try
- Else
- MessageBox.Show("Es können nur Text- oder RTF-Dateien akzeptiert werden.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End If
- End If
- End If
- End Sub
- Private Sub TxtEditor_TextChanged(sender As Object, e As EventArgs) Handles txtEditor.TextChanged
- ' Automatisches Speichern aktivieren, wenn es aktiviert ist und der Text geändert wurde
- If autoSaveEnabled Then
- SaveSettings()
- End If
- End Sub
- Private Sub BtnBold_Click(sender As Object, e As EventArgs) Handles btnBold.Click
- ApplyFontStyle(FontStyle.Bold, selectedColor)
- End Sub
- Private Sub BtnItalic_Click(sender As Object, e As EventArgs) Handles btnItalic.Click
- ApplyFontStyle(FontStyle.Italic, selectedColor)
- End Sub
- Private Sub BtnUnderline_Click(sender As Object, e As EventArgs) Handles btnUnderline.Click
- ApplyFontStyle(FontStyle.Underline, selectedColor)
- End Sub
- Private Sub ApplyFontStyle(fontStyle As FontStyle, color As Color)
- ' Speichern der aktuellen Auswahl
- Dim selectionStart As Integer = txtEditor.SelectionStart
- Dim selectionLength As Integer = txtEditor.SelectionLength
- Dim selectedText As String = txtEditor.SelectedText
- Dim originalFont As Font = txtEditor.SelectionFont
- Dim originalColor As Color = txtEditor.SelectionColor
- ' Anwenden der gewünschten Formatierung
- txtEditor.SelectionStart = selectionStart
- txtEditor.SelectionLength = selectionLength
- txtEditor.SelectionFont = New Font(originalFont, originalFont.Style Or fontStyle)
- txtEditor.SelectionColor = color
- ' Wiederherstellen der vorherigen Auswahl
- txtEditor.Select(selectionStart, selectionLength)
- txtEditor.SelectedText = selectedText
- txtEditor.Select(selectionStart, selectedText.Length)
- End Sub
- Private Sub NeuToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuToolStripMenuItem.Click
- Dim newForm As New Form1
- newForm.Show()
- End Sub
- Private Sub ÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ÖffnenToolStripMenuItem.Click
- OpenFileDialog1.Filter = "RTF-Dateien (*.rtf)|*.rtf|Textdateien (*.txt)|*.txt"
- If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
- Try
- If OpenFileDialog1.FileName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase) Then
- ' Öffnen als TXT-Datei
- txtEditor.LoadFile(OpenFileDialog1.FileName, RichTextBoxStreamType.PlainText)
- ElseIf OpenFileDialog1.FileName.EndsWith(".rtf", StringComparison.OrdinalIgnoreCase) Then
- ' Öffnen als RTF-Datei
- txtEditor.LoadFile(OpenFileDialog1.FileName)
- Else
- MessageBox.Show("Das Dateiformat wird nicht unterstützt.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End If
- Catch ex As Exception
- MessageBox.Show("Fehler beim Öffnen der Datei: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End Try
- End If
- End Sub
- Private Sub SpeichernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpeichernToolStripMenuItem.Click
- SaveFileDialog1.Filter = "RTF-Dateien (*.rtf)|*.rtf|Textdateien (*.txt)|*.txt"
- If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
- Dim filename As String = SaveFileDialog1.FileName
- If filename.EndsWith(".txt", StringComparison.OrdinalIgnoreCase) Then
- ' Speichern als TXT-Datei
- txtEditor.SaveFile(filename, RichTextBoxStreamType.PlainText)
- Else
- ' Speichern als RTF-Datei
- txtEditor.SaveFile(filename, RichTextBoxStreamType.RichText)
- End If
- End If
- End Sub
- Private Sub SpeichernAlsRtf(filename As String)
- ' Speichern des RichTextBox-Inhalts im RTF-Format
- Dim rtfContent As String = ""
- For Each c As Char In txtEditor.Text
- Dim fontSize As Single = txtEditor.SelectionFont.Size
- rtfContent &= "{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Arial;}}" & vbCrLf
- rtfContent &= "{\colortbl ;" & ColorTranslator.ToHtml(txtEditor.SelectionColor) & ";}" & vbCrLf
- rtfContent &= "\viewkind4\uc1\pard\cf1\f0\fs" & CInt(fontSize * 2) & " " & c & vbCrLf
- Next
- File.WriteAllText(filename, rtfContent)
- End Sub
- Private Sub DruckenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DruckenToolStripMenuItem.Click
- Dim printDoc As New Printing.PrintDocument
- AddHandler printDoc.PrintPage, AddressOf PrintPageHandler
- Dim printDialog As New PrintDialog With {
- .Document = printDoc
- }
- If printDialog.ShowDialog() = DialogResult.OK Then
- printDoc.Print()
- End If
- End Sub
- Private Sub PrintPageHandler(sender As Object, e As Printing.PrintPageEventArgs)
- Dim printFont As New Font("Arial", 12)
- e.Graphics.DrawString(txtEditor.Text, printFont, Brushes.Black, New RectangleF(100, 100, e.MarginBounds.Width, e.MarginBounds.Height))
- End Sub
- Private Sub DesktopDoubleClickHandler(sender As Object, e As EventArgs)
- Dim desktopPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) ' Pfad zum Desktop
- Dim selectedFile As String = Path.Combine(desktopPath, "example.txt") ' Beispieldatei auf dem Desktop
- If File.Exists(selectedFile) Then
- LoadFileToRichTextBox(selectedFile)
- End If
- End Sub
- Private Sub LoadFileToRichTextBox(filePath As String)
- ' Dateiinhalt in die RichTextBox laden
- If File.Exists(filePath) Then
- Dim fileContent As String = File.ReadAllText(filePath)
- txtEditor.Rtf = fileContent ' Annahme: Die Datei enthält RTF-formatierten Text
- End If
- End Sub
- End Class
Kann irgendwer mir sagen, welchen Code ich verwenden muss?
*Topic verschoben, EXE-Anhang entfernt*
Wie man mich kontaktieren kann:
thiemo-melhorn.de
thiemo-melhorn.de
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()