Mam problem z zaprogramowaniem prostego edytora tekstu.
Otóż mój problem polega na tym że nie wiem jak zrobić aby po dodaniu karty w TabControl (Dzięki Kliknięciu na Przycisk) ta nowa karta zawierała ten same elementy jakie są w poprzedniej karcie.
A jak by dało rade zrobić aby wszystkie dodawane karty zawierały ten sam zdefiniowany element był bym bardzo wdzięczny za poweidzenie mi jak to zrobić ?
Dim t As New TabPage
Dim newtab As New RichTextBox
newtab.Show()
newtab.Dock = DockStyle.Fill
newtab.Text = ""
t.Controls.Add(newtab)
TabControl1.TabPages.Add(t)
Teraz nie wiem jak zrobić aby zapisać treść z aktywnej karty na dysku twardym przez tą moją aplikacje może jakieś propozycje ?
Public Class Form1
Dim i As Integer = 1
Private Sub ZapiszToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ZapiszToolStripMenuItem.Click
Dim Save As New SaveFileDialog
Save.Filter = "Text Files (*.txt)|*.txt|ALL FILES (*.*)|*.*"
Save.Title = "Zapisz Plik"
Save.CheckPathExists = True
Save.ShowDialog(Me)
Dim newstab As RichTextBox
Try
My.Computer.FileSystem.WriteAllText(Save.FileName, RichTextBox.Text, False)
Catch ex As Exception
End Try
End Sub
Private Sub OtwórzToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles OtwórzToolStripMenuItem.Click
Dim Open As New OpenFileDialog
Open.Filter = "Text Files (*.txt)|*.txt|ALL FILES (*.*)|*.*"
Open.Title = "Otwieranie Pliku"
Open.CheckPathExists = True
Open.ShowDialog(Me)
On Error Resume Next
Dim RT As New System.IO.StreamReader(Open.FileName)
On Error Resume Next
Dim t As New TabPage
Dim newtab As New RichTextBox
newtab.Show()
newtab.Dock = DockStyle.Fill
newtab.Text = ""
t.Controls.Add(newtab)
TabControl1.TabPages.Add(t)
newtab.Text = RT.ReadToEnd
t.Text = Open.FileName
End Sub
Private Sub ZamknijToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ZamknijToolStripMenuItem.Click
End Sub
Private Sub Form1_Activated(sender As Object, e As System.EventArgs) Handles Me.Activated
Dim t As New TabPage
Dim newtab As New RichTextBox
newtab.Show()
newtab.Dock = DockStyle.Fill
newtab.Text = ""
t.Controls.Add(newtab)
TabControl1.TabPages.Add(t)
End Sub
Private Sub NowaKartaToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles NowaKartaToolStripMenuItem.Click
Dim t As New TabPage
Dim newtab As New RichTextBox
newtab.Show()
newtab.Dock = DockStyle.Fill
newtab.Text = ""
t.Controls.Add(newtab)
TabControl1.TabPages.Add(t)
End Sub
End Class
Błąd jest w
Try
My.Computer.FileSystem.WriteAllText(Save.FileName, [u][b]RichTextBox.Text[/b][/u], False)
Catch ex As Exception
End Try
I teraz jak zrobić aby pobrało tekst z jednego RichTextBox będącego na aktualnie otwartej karcie
Text nie jest zmienną statyczną/stałą klasy RichTextBox. Musisz odwołać się do konkretnego obiektu(wybranej karty), co podałem jak zrobić(coś jak: CType(TabControl1. SelectedTab. Controls [0], RichTextBox).Text).
Jeśli zrobiłeś copy-paste mojego kodu, to niestety nie będzie działać(nie znam VB i teraz widzę, że tam jest błąd, ale dlatego napisałem “coś jak”, by nie brać go dosłownie). Przejrzyj dokładnie dokumentacje(linki które podesłałem to podstawa, ale więcej by się przydało w sumie, bo wydaje mi się, że Ci podstaw brakuje), a następnie napisz na ich podstawie kod.
Albo masz gotowca: My.Computer.FileSystem.WriteAllText(Save.FileName, CType(Me.TabControl1.SelectedTab.Controls(0), RichTextBox).Text, False)