わからないことはcopilotに聞いてVB.NETでディスクトップアプリを作ってみよう NO.05 メニューとボタンを追加
アオノおじさんのひとりごと
(本文とは関係ありません、ひとりごとです)
今更 VisualBasic は時代遅れでしょうか、それでもVBAはエクセルなどには今でも現状で使用されていますし会社で使用されているソフトの多くにVisualBasicで開発されているものは、あるかもしれません。
最近 pythonが流行りですが、初心者は、環境を整えるのも大変です、今回のVB2022はインストールするだけで、とりあえず動作します。
BASICを理解していれば、社内のソフトのメンテナンスなどにも、いいかもしれませんね。 本格的なプログラム(ゲームやグラフィックのソフトなど)を目指しているかたには、参考にはならないですね。
メニューとボタンの追加
(ここから本文)
サンプルは以下からダウンロードできます。
(5~11回まですべてのサンプル)
メニューを追加する
メニューの作り方を copilotに聞いてみて
これと同じ手順で作成してみます。
1)フォームにMeniStripをドラックして追加します。
ツールボックスが表示されていない場合 メニュー 表示 からツールボックスを選択します。
2)メニュー項目を作成する
ここへ入力に ファイル(&F) と入力します。
&F &を入れるのは、キーで操作できる文字を登録する
ため必要です。キー操作が必要ない場合 必要ありません。
実際に終了する(フォームを閉じる)プログラムを登録してみます。
メニューで実行したい部分(ここでは終了)をダブルクリックします。
ダブルクリックする以下にように
Private Sub 終了XToolStripMenuItem が自動作成されますので
End Sub との間に Me.Close()を入力します。
Me.Close() 私を閉じる これで終了します。
Private Sub 終了XToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 終了XToolStripMenuItem.Click
Me.Close()
End Sub
ボタンを追加する
ボタンもツールボックスからドラックすることで追加できます。
ボタンをドラックしサイズと位置を適当にマウスでセット後 プロパティで
Neme ButExit と設定します
プロパティ Text 終(Esc) と設定します。
これも、メニューと同じく終了する(フォームを閉じる)プログラムを登録してみます。
ボタンをダブルクリックします。すると、以下のように開きますのでここでメニューと同じく Me.Close() と入力します。
この終了には 終(Esc) とありますが、このEscキーでも終了できるようにしてみます。
ここでも、copilotに聞いてみます。
同じように操作してみます。
1)フォームのKeyPreviewプロパティをTrueに設定します。
MainFormを 1度クリックします。これでプロパティが開きます。
KeyPreviewを Trueにします。
2)フォームにKeyDownイベント ・・・ とありますが、ここでは
コピー&ペーストします。
これをコピーして そのままペーストします
' フォームのKeyDownイベント
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.F1
Button1.PerformClick()
Case Keys.F2
Button2.PerformClick()
' 他のファンクションキーに対応するボタンも追加可能
End Select
End Sub
このままで実行すると エラーするので、書き換えします。
Form1 を frmMain に変更します。
Case Keys.Escape 'Escキーで終了
Me.Close()
実行で起動
終ボタンをクリックで終了(フォームを閉じます)
Escキーを押すと終了
メニュー ファイル 終了で終了
これで メニューとボタンを追加は終了です。
また、私のホームページには、住所データも登録できるソフトも公開しています。こちらをクリック
以下は、今回の作成予定の実行ファイル OkuriJyo100.zip(無料)です。
01で入手していないかたは、こちらからダウンロードできます。
全ソースプログラムと解説書PDFは こちらから DLできます。
以下 仕事のホームページです。業務用パソコンソフトを開発販売しています、ご訪問いただけると幸いです。https://aonosys.jp/