Simppeli tekstieditori. Jätin tarkoituksella hieman yksinkertaiseksi ettei tule turhaa purkkakoodia ja että aloittelijatkin varmasti tajuaa. Bonuksena läpinäkyvyystila sekä yhteensopivuus myös SharpDevelopin RC3-version kanssa. Koodin vaatimat komponentit ja niiden oletuksista poikkeavat ominaisuudet ovat selkeyden vuoksi listauksessa 2.
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.IO
Imports Microsoft.VisualBasic
'Viimeinen on SharpDevelop-yhteensopivuuden vuoksi. Ota pois jos herjaa jotakin.
'Määritellään muutama muuttuja. Suosittelen laittamaan
'Windows Forms Designer Generated Coden alle varmuuden
'vuoksi.
Dim Naytettava As StreamReader
Dim polku As String
'Lopetettaessa.
Private Sub mnuLopeta_Click(sender As System.Object, e As System.EventArgs)
End
End Sub
'Täytyyhän sitä kopiraitit pistää jotta hakkerit
'voivat heksaeditorilla leikkiä, jos löytävät :D
Private Sub mnuInfo_Click(sender As System.Object, e As System.EventArgs)
MessageBox.Show("Tekstieditori (c) Jussi Kilpeläinen 2004","Info")
End Sub
'Jos halutaan vaihtaa fonttia. Käyttää FontDialogia. Kätevää.
Private Sub mnuFont_Click(sender As System.Object, e As System.EventArgs)
If FontDialog1.ShowDialog = DialogResult.OK Then
rtbMain.Font = FontDialog1.Font
End If
End Sub
Private Sub mnuAvaa_Click(sender As System.Object, e As System.EventArgs)
'Onko kenttä tyhjä. Jos ei, niin kysytään haluatko
'tallentaa ennen avaamista.
If rtbMain.Text <> "" Then
'Selvitä mitä näytetään tallennuskehotuksessa,
'kun tiedostossa kerran on jotakin. Tämä saattaa
'jäädä joillekuille hieman hämäräksi.
If OpenFileDialog1.FileName="" And SaveFileDialog1.FileName<>"" Then
'Näytetään jo tallennetun tiedoston nimi
polku = SaveFileDialog1.FileName
ElseIf OpenFileDialog1.Filename<>"" Then
'Tai sitten jo avatun tiedoston nimi
polku=OpenFileDialog1.Filename
End If
'Näytä tallennuskehotus
Dim tulos As DialogResult = MessageBox.Show("Haluatko tallentaa tiedoston " & polku & "?", "Haluatko tallentaa?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
Select tulos
Case DialogResult.Yes
Tallenna()
Case DialogResult.Cancel
Exit Sub
End Select
End If
'Jos avauksessa painettiin OK
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
'Käytetään System.IOssa olevaa StreamReader-luokkaa
Naytettava = New StreamReader(OpenFileDialog1.FileName,System.Text.Encoding.Default)
rtbMain.Text=Naytettava.ReadToEnd
Naytettava.Close()
rtbMain.Select(0,0)
mnuTallenna.Enabled=True
End If
End Sub
'Jos tallennetaan jo kerran nimellä tallennettu tiedosto
Private Sub mnuTallenna_Click(sender As System.Object, e As System.EventArgs)
FileOpen(1, SaveFileDialog1.FileName, Microsoft.VisualBasic.OpenMode.Output)
PrintLine(1,rtbMain.Text)
FileClose(1)
End Sub
'Subi tallentamiseen, kuten nimi kertoo.
Private Sub Tallenna()
SaveFileDialog1.Filter= "Tekstitiedostot (*.txt)|*.txt|Kaikki tiedostot (*.*)|*.*|"
If SaveFileDialog1.ShowDialog() = ShowDialog.OK Then
FileOpen(1, SaveFileDialog1.FileName, Microsoft.VisualBasic.OpenMode.Output)
PrintLine(1,rtbMain.Text)
FileClose(1)
End If
'Jottei sitten jos tämän jälkeen avattaessa
'tiedostoa näy avatun tiedoston nimi, niin tyhjennetään
OpenFileDialog1.FileName=""
End Sub
Private Sub mnuBackColor_Click(sender As System.Object, e As System.EventArgs)
'Avataan ColorDialog1 ja asetetaan väri kentän taustaväriksi
If ColorDialog1.ShowDialog=ShowDialog.OK Then
rtbMain.BackColor=ColorDialog1.Color
End If
End Sub
'Vaihdetaan formin läpinäkyvyyttä Opacity-ominaisuuden avulla.
Private Sub mnuOpacity_Click(sender As System.Object, e As System.EventArgs)
'Jos ei läpinäkyvä(käytännössä tarkistetaan ettei check-merkkiä valikossa)
If mnuOpacity.Checked=False Then
Me.Opacity=0.6
mnuOpacity.Checked=True
'Jos on läpinäkyvä jo ennestään
Else
Me.Opacity=1
mnuOpacity.Checked=False
End If
End Sub
Private Sub Timer1Tick(sender As System.Object, e As System.EventArgs)
'Laitetaan palkkiin kellonaika ajastimen Interval-arvon välein
StatusBar1.Text = System.DateTime.Now
End Sub
'Automaattinen rivitys RichTextBoxin WordWrap-ominaisuutta
'hyväksikäyttäen
Private Sub mnuWrap_Click(sender As System.Object, e As System.EventArgs)
If mnuWrap.Checked=True Then
rtbMain.WordWrap=False
mnuWrap.Checked=False
Else
rtbMain.WordWrap=True
mnuWrap.Checked=True
End If
End Sub
'Vaihdetaan tekstin väri.
Private Sub mnuTextColor_Click(sender As System.Object, e As System.EventArgs)
If ColorDialog1.ShowDialog=ShowDialog.OK Then
rtbMain.ForeColor=ColorDialog1.Color
End If
End Sub
Private Sub mnuTallennaNimella_Click(sender As System.Object, e As System.EventArgs)
mnuTallenna.Enabled=True
Tallenna()
End Sub'Menu
MainMenu1
>mnuTiedosto
>mnuAvaa
>mnuTallenna
>mnuTallennaNimella
>mnuLopeta
>mnuAsetukset
>mnuFont
>mnuTeema -> mnuBackColor
mnuTextColor
>mnuOpacity
>mnuWrap
>mnuNfo
>mnuInfo
rtbMain (RichTextBox)
WordWrap False
ScrollBars ForcedBoth
Size 560; 400
DetectUrls False
colorDialog1
timer1
Interval 1000
openFileDialog1
saveFileDialog1
fontDialog1
statusBar1
'Ja itse lomakkeen(formin) ominaisuudet:
'Nämä sen takia että suurennettaessa ei mene rumaksi.
MaximizeBox False
FormBorderStyle Fixed3D
Size 570;458Hmh. Miksi minun vinkit aina hylätään (nähtävästi tämäkin) kommentoimatta... :P
Aihe on jo aika vanha, joten et voi enää vastata siihen.