メモ帳を作ろう!前編VB.NET入門


メモ帳を作ってみたいと思います。
コンポーネントを使い作成することもあるとは思いますが
今回は出来るだけ簡単に作成しようと思います。

起動時の画面です。

画面1

ファイルメニュー
無題2
編集メニュー
無題3

画面のメニューはMenuStripを使ってます。
右上の三角のアイコンの標準項目の挿入してます。
他の項目も作成されますが削除してます。

テキストボックスも三角のところのMultilineプロパティで複数行表示できるようにフォーム一杯に配置してます。
他の部品はプリント用と保存用と印刷プレビューとファイルを開く用のダイヤログです。
後は印刷のドキメントが一つです。

画面4

メニューの動作処理はこのままだと空なのでコードを書いていきましょう。

ファイルから新規作成はテキストボックスを空にしてるだけです。
動作はデザイナーで新規作成をダブルクリックしたらクリックイベントが作成されます。

Private Sub 新規作成NToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 新規作成NToolStripMenuItem.Click
TextBox1.Text = “”
End Sub
同じように開くも紐づけてます。
OpenFileDialog1を開いてます。
Private Sub 開くOToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 開くOToolStripMenuItem.Click
OpenFileDialog1.ShowDialog()
End Sub
ダイヤログを開いただけなので開くを選択したときに動くFileOkで紐づけてます。
開くのにファイルパスがいるのでOpenFileDialog1.FileNameから取得してます。
filepath はクラスの下に宣言してます。
printData は印刷処理のデータを入れる箱です。

Dim filepath As String
Dim printData As String

読み込み為にSystem.IO.StreamReaderクラスを使用します。
テキストボックスにデータを入れてます。
ReadToEndは全行読み込みます。

Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
filepath = OpenFileDialog1.FileName
Dim sr As New System.IO.StreamReader(filepath, _
System.Text.Encoding.GetEncoding(“shift_jis”))
TextBox1.Text = sr.ReadToEnd()
sr.Close()
End Sub
名前を付けて保存も同じようにします。

Private Sub 名前を付けて保存AToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 名前を付けて保存AToolStripMenuItem.Click
SaveFileDialog1.ShowDialog()
End Sub

Private Sub SaveFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
    filepath = SaveFileDialog1.FileName
Call save()
End Sub

保存は複数使うのでサブルーチンにしときます。
Private Sub save()
Dim sw As New System.IO.StreamWriter(filepath, _
False, _
System.Text.Encoding.GetEncoding(“shift_jis”))
sw.Write(TextBox1.Text)
sw.Close()

End Sub
上書き保存の場合パスがないと書き込めないのでダイヤログを呼び出します。

Private Sub 上書き保存SToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 上書き保存SToolStripMenuItem.Click
If filepath = Nothing Then
SaveFileDialog1.ShowDialog()
Call save()
Else
Call save()
End If

End Sub

終了はEndにしてます。
Private Sub 終了XToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 終了XToolStripMenuItem.Click
End
End Sub
長くなったので分けます。

Translate »