Code voor Text Editor gezocht!

Status
Niet open voor verdere reacties.

gast0685

Gebruiker
Lid geworden
16 sep 2010
Berichten
855
Hallo allemaal,

Na lang coderen is het mij gelukt om een goede Text Editor te maken in VB 2008.
Alleen is er een ding... als ik op sluiten klik vraagt ie of ik het document op wil slaan... wat natuurlijk moet, maar als ik dan op Nee klik vraagt ie het nog een keertje.
En als ik op Ja klik vraagt ie het weer en dan krijg ik de SaveFileDialog niet want dan sluit ie af...
Dit is de code die ik zelf heb ontwikkeld....:
Code:
If SavedFileAddress = "" Then
MsgBox("Would you like save this document?", MsgBoxStyle.YesNo)
If MsgBoxResult.No Then
Application.Exit()
ElseIf MsgBoxResult.Yes Then
Dim Save As New SaveFileDialog
Save.Filter = "Maisjul Text Editor Pro Files (*.mtepf)|*.mtepf"
Save.Title = "Save File"
Save.CheckPathExists = True
Save.ShowDialog(Me)
My.Computer.FileSystem.WriteAllText(Save.FileName, RichTextBox1.Text, False)
SavedFileAddress = ""
Application.Exit()
End If
End If

SavedFileAddress is trouwens een String waar hij in zet wat de locatie is van de filename voor SaveAs.

Wie weet er welk stukje code fout is?
Ik heb trouwens nog wat vragen: 1.Het bestandstype mtepf bestaat niet, dit heb ik zelf verzonnen, weet iemand hoe je ervoor kan zorgen dat als je een bestand opslaat dat je dan het Icon van de tekstverwerker krijgt? 2.Als je een bestand opent of opslaat hoe kan je er dan voor zorgen dat de Text Editor de documentnaam aangeeft die je hebt ingegeven zonder de locatie?
3.Als ik een document op de computer heb staan wat ik al eerder heb gemaakt, kan ik mijn Text Editor dan zo instellen dat als ik het op de schijf aanklik dat ie hem dan automatisch in de verwerker opent en ook de tekst weergeeft?
Ik weet dat dit veel vragen zijn maar het is even nodig om mijn Maisjul Text Editor Pro versie 1 af te ronden!:D

Grtz,

Michaël
 
Laatst bewerkt:
Getest met het FormClosing event:

Code:
        If SavedFileAddress = Nothing Then
            Dim ToSaveOrNotToSave As DialogResult = _
                MessageBox.Show("Would you like to save this document?", Application.ProductName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
            If ToSaveOrNotToSave = DialogResult.Yes Then
                Dim Save As New SaveFileDialog
                Save.Filter = "Maisjul Text Editor Pro Files (*.mtepf)|*.mtepf"
                Save.Title = "Save File"
                Save.CheckPathExists = True
                Save.ShowDialog(Me)
                My.Computer.FileSystem.WriteAllText(Save.FileName, RichTextBox1.Text, False)
                SavedFileAddress = Nothing
            ElseIf ToSaveOrNotToSave = DialogResult.No Then
                e.Cancel = False
            Else
                e.Cancel = True
            End If
        End If

Voor je 2de en 3de vraag kan ik je niet mee helpen.
 
Laatst bewerkt:
Bedankt! Alleen geeft Visual Basic bij de regels e.cancel = True en e.cancel = False het volgende aan: 'cancel' is not a member of 'System.EventArgs'
Dit is bij de code voor ExitToolStripMenuItem.
 
Laatst bewerkt door een moderator:
Bedankt! Alleen geeft Visual Basic bij de regels e.cancel = True en e.cancel = False het volgende aan: 'cancel' is not a member of 'System.EventArgs'
Dit is bij de code voor ExitToolStripMenuItem.

Ja dat komt omdat die code bedoelt is voor het FormClosing event. Zet het daaronder neer en vervolgens plaats je deze code onder het ExitToolStripMenuItem click event:

Code:
        If SavedFileAddress = Nothing Then
            Dim ToSaveOrNotToSave As DialogResult = _
                MessageBox.Show("Would you like to save this document?", Application.ProductName, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
            If ToSaveOrNotToSave = DialogResult.Yes Then
                Dim Save As New SaveFileDialog
                Save.Filter = "Maisjul Text Editor Pro Files (*.mtepf)|*.mtepf"
                Save.Title = "Save File"
                Save.CheckPathExists = True
                Save.ShowDialog(Me)
                My.Computer.FileSystem.WriteAllText(Save.FileName, RichTextBox1.Text, False)
                SavedFileAddress = Nothing
                Application.Exit()
            ElseIf ToSaveOrNotToSave = DialogResult.No Then
                Application.Exit()
            End If
        End If
 
Oké, kan je me trouwens ook helpen met deze code voor het openen?
Code:
  If SavedFileAddress = "" Then
            MsgBox("Would you like save this document?", MsgBoxStyle.YesNo)
            If MsgBoxResult.No Then
                Dim Open As New OpenFileDialog
                Open.Filter = "Maisjul Text Editor Pro Files (*.mtepf)|*.mtepf"
                Open.Title = "Open File"
                Open.CheckPathExists = True
                Open.ShowDialog(Me)
                On Error Resume Next
                Dim RT As New System.IO.StreamReader(Open.FileName)
                On Error Resume Next
                Richtextbox1.Text = RT.ReadToEnd
                SavedFileAddress = Open.FileName
                Me.Text = RT.ToString & " - Maisjul Text Editor Pro"
            ElseIf MsgBoxResult.Yes Then
                Dim Save As New SaveFileDialog
                Save.Filter = "Maisjul Text Editor Pro Files (*.mtepf)|*.mtepf"
                Save.Title = "Save File"
                Save.CheckPathExists = True
                Save.ShowDialog(Me)
                My.Computer.FileSystem.WriteAllText(Save.FileName, Richtextbox1.Text, False)
                Dim Open As New OpenFileDialog
                Open.Filter = "Maisjul Text Editor Pro Files (*.mtepf)|*.mtepf"
                Open.Title = "Save File"
                Open.CheckPathExists = True
                Open.ShowDialog(Me)
                On Error Resume Next
                Dim RT As New System.IO.StreamReader(Open.FileName)
                On Error Resume Next
                Richtextbox1.Text = RT.ReadToEnd
                Me.Text = RT.ToString & " - Maisjul Text Editor Pro"
                SavedFileAddress = ""
                Me.Text = Save.FileName.ToString & " - Maisjul Text Editor Pro"

            End If
        End If
 
Het openen is eigenlijk vrijwel hetzelfde als het saven alleen gebruik je een openfiledialog in plaats van een savefiledialog.

Wat je daar hebt kan best al werken, maar ik zie dat je daar een savefiledialog en een openfiledialog onder elkaar hebt staan. Dat kan niet de bedoeling zijn of wel?
 
Want het gaat erom, als je het document hebt gewijzigd maar nog niet hebt opgeslagen dat ie dan vraagt of je voor het openen wil opslaan. Die code bedoel ik.
 
Heeft iemand nog de code voor de andere dingen?
 
Laatst bewerkt:
Volgens mij kun je het openen best zelf programmeren.
Neem gewoon de code voor het saven en pas het aan voor openen.

Kan niet missen.
 
Antwoord op vraag 1:

Ik ben er van overtuigd dat je dit gewoon kan vinden op internet, maar goed.
Hier heb je de code incl. sub:

Ik ga er btw van uit dat je gebruik maakt van een RichTextbox die RichTextBox1 heet.

Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
        Dim a = MsgBox("Wilt u uw script opslaan?", +4096 + 4 + 48, "Tekstverwerker")
        If a = vbYes Then
                Try
                Dim Save As SaveFileDialog = New SaveFileDialog
                Save.Title = "Tekstverwerker"
                Save.Filter = "Notepad Bestand (*.txt)|*.txt|Alle Bestanden (*.*)|*.*"
                If Save.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                    RichTextBox1.SaveFile(Save.FileName, RichTextBoxStreamType.PlainText)
                End If
                Catch ex As Exception
                MsgBox("Er is een fout opgetreden tijdens het opslaan. Het document is niet opgeslagen.", 48 + 4096, "Tekstverwerker")
                End Try
            End If
    End Sub

Ik weet niet of je gevorderd bent, maar dit had je best zelf kunnen programmeren. (OpenFileDialog lijkt hier namelijk op)

Antwoord op vraag 2:

Stel, je OpenFileDialog heet Open.

Code:
Dim Pad As String = Open.FileName
Dim Bestandsnaam As String = System.IO.Path.GetFileName(Pad)

Dan is 'Bestandsnaam' de bestandsnaam zonder pad.


Antwoord op vraag 3:

Ik weet uit mijn hoofd ff geen antwoord. Ik ben er bijna zeker van dat als je even gaat zoeken op het internet, dat er zat te vinden is.
 
Het lukt niet met vraag 3 te zoeken en ook niet met die van het icoontje.
 
Dat was deze vraag: Het bestandstype mtepf bestaat niet, dit heb ik zelf verzonnen, weet iemand hoe je ervoor kan zorgen dat als je een bestand opslaat dat je dan het Icon van de tekstverwerker krijgt?
 
Geen idee :eek:. Werkt de rest wel??
 
Laatst bewerkt door een moderator:
Weet ik nog niet, ik kon hem nog niet testen omdat ik Visual Studio moet her-installeren en er waren flink wat problemen met de pc....
 
Laatst bewerkt door een moderator:
Ik heb een probleem, ik gebruik Visual Studio 2005 Professional, maar het project is gemaakt met Visual Studio 2008, en nu kan ik hem niet inladen in 2005 weet iemand een soort project converter?
 
Maak een nieuw project aan en noem deze hetzelfde. Voeg Forms toe aan het project met dezelfde naam. Kopieer daarna alle form bestanden (designer, code en resx) van het oude project naar het nieuwe een overschrijf alle bestanden. VB komt met een melding dat source bestanden buiten de developer aangepast zijn en of je deze opnieuw wilt inladen. Kies ja op alles.

Klaar.

Mogelijk moet je eventuele references opnieuw importeren.

Misschien is het ook een idee om over te stappen naar Visual Studio 2010?
 
Laatst bewerkt:
Het klopt inderdaad.
Visual Studio 2010 heb ik wel eens geprobeerd als zo'n Express Edition maar dat werkte niet goed. Tenminste vind ik...
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan