2020年05月15日

師匠のVB.NETどたばた塾~第9回

sisyo.gif
師匠:さて。今回も講座を始めるが、ちゃんと予習復習はやってきておろうな?

deshi.gif
弟子:ぎくっ。ハ、ハイ、モチロン。チャントヤッキマシタトモ。

sisyo.gif
なんでカタコトになっておるのじゃおぬしわぁっ!!(飛び蹴り

deshi.gif
うわぁっ。

sisyo.gif
……こほん。さて、今回はテキストボックスとコマンドボタンの使い方についてやっていくとするぞ。

deshi.gif
は、はい、師匠……。

~コマンドボタンを使ってみるのじゃ。

sisyo.gif
まずは、コマンドボタンの使い方からじゃ。最初は貼り付けるところからやってみるとしようぞ。
これがコマンドボタンじゃ。

vb2005-01.JPG
↑これがコマンドボタンだ!

sisyo.gif
これを、前回のピクチャーボックスと同じ要領で、フォームに貼り付けるがよい。

deshi.gif
はい、できましたよ。プロパティを見てみると、Textプロパティがありますね。もしかして、これをいじると、ボタンに表示されている文字列を変えることができるわけですか?

sisyo.gif
うむ。その通りじゃ。試しに、Textプロパティを『技を撃つ!』に変えてみるがよい。

deshi.gif
はい……おおっ! 変わりましたよ!

vb2005-02.JPG
↑Textプロパティを変えるとこうなるぞ!

deshi.gif
それで、これはどう使えばよいのですか?

sisyo.gif
うむ。それではまず、コマンドボタンをダブルクリックしてみよ。

deshi.gif
はい……何か、コードを書くウィンドウが開きましたよ。

vb2005-03.JPG
↑コードを書くウィンドウが開いた!

sisyo.gif
そのコード(プログラム)をよく見てみるがよい。Private Sub ●●●と、End Subという二つの行があるじゃろう?

deshi.gif
はい。

sisyo.gif
今貼り付けたボタンを押すと、VB.NETは、その二つの行に囲まれた命令を実行するようになっておるのじゃ。そうじゃのう。試しに、MsgBox("石破天@拳!!")と、打ち込んでみるがよい。
MsgBoxは、指示した内容が表示された小さなウィンドウを表示させる関数(命令)じゃ。

deshi.gif
なるほど。じゃ、さっそく打ち込んで実行してみますね……。
おおっ! ボタンを押したら、『石破天@拳!!』と書かれたウィンドウが表示されましたよ!

vb2005-04.JPG
↑技が出た!?

sisyo.gif
うまくいったようじゃのう。さて、先ほどのPrivate Sub ●●●という感じの行に注目せよ。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

sisyo.gif
どのボタンをどのように操作した時に、どこのコードを実行するかは、この行のButton1_Clickの部分が関係しておる。
この部分は、だいたいこのように構成されているのじゃ。

対象となるコントロール_操作

deshi.gif
つまり、今回の場合なら、Button1をClickした時に、この部分の命令が実行されるわけですか。

sisyo.gif
その通り。これを覚えていると、色々と役に立つぞ。なお、今のように、コントロール(部品)が操作された時に、そのコントロールと操作に関連づけられた部分のコードを実行させる、というプログラミング形式を、『イベント駆動型プログラミング』という。豆知識として頭の片隅に入れておくがよい。

deshi.gif
はい、師匠!

~テキストボックスを使ってみよう!

sisyo.gif

さて。次はテキストボックスを使ってみるとしようぞ。
これがテキストボックスじゃ。

vb2005-05.JPG
↑これがテキストボックスだ!

sisyo.gif
これを、先ほどのフォームに貼り付けてみるがよい。

deshi.gif
はい。貼り付けてみましたけど……これ、複数行のテキストを入力したいときはどうすればいいんですか?

sisyo.gif
うむ。いい質問じゃの。通常は一行分だけのテキストボックスしか作れぬが……今貼り付けたテキストボックスのプロパティの中から、MultiLineというプロパティを見つけ出し、その内容をTrueに変えてみるがよい。すると、テキストボックスを広げることができるようになるぞ。

deshi.gif
おおっ、本当だ! まだボケてはいなかったんですね! いてっ。

sisyo.gif
わしはまだ若い。スクロールバーを使ってテキストをスクロールできるようにしたいときは、ScrollBarsプロパティを変えるのじゃ。なお、プロパティの値は次のようになっておる。

・None……スクロールバーはつかない
・Horizontal……横にスクロールさせるスクロールバーをつける
・Vertical……縦にスクロールさせるスクロールバーをつける
・Both……両方つける

deshi.gif
あの、師匠。プロパティをHorizontalにしましたけど、スクロールバーが表示されてませんよ。やっぱり師匠はボケ……いてっ。

sisyo.gif
わしはまだ若い。こほん。一つ説明するのを忘れておった。HorizontalやBothにした場合は、WordWrapプロパティをFalseにしないと、横のスクロールバーは表示されぬのじゃ。すまぬ。
その代わりに、WordWrapをTrueにした場合、テキストボックスは、画面の端まで入力すると折り返すようになるのじゃ。

deshi.gif
ふむふむ。

sisyo.gif
さて、もう一つ面白いプロパティを教えておこう。PasswordCharじゃ。これを設定しておくと、入力した文字が、ここで設定した文字に置き換わって表示されるのじゃ。なお、入力した内容はそのままなので安心するように。
また、このプロパティは一行のみのテキストボックス(つまり、MultiLineがFalseになっている)でないと効果がないので気を付けるようにな。

deshi.gif
はい、わかりました。それで、入力した文字はどのように取得すればいいのでしょうか?

sisyo.gif
うむ。実はVB.NETでは、コード中でプロパティを取得することができるのじゃ。そのためには次のように書く。

コントロール名.プロパティ名

sisyo.gif
例えば、TextBox1のTextプロパティを知りたければ、次のように書く。

TextBox1.Text

sisyo.gif
このように書けば、後はこれを変数のように値を取得したり、逆に値を設定することができるのじゃ。

deshi.gif
おおっ!

sisyo.gif
それではさっそく、使ってみることにしようぞ。まずは、先ほどのテキストボックスのMultiLineをFalseに戻し、そしてさらに、先ほど書いたコードを次のように変えてみるがよい。

MsgBox(TextBox1.Text)

deshi.gif
はい、できました。そして実行……と。おおっ! テキストボックスに文字を入力してからボタンを押すと、その内容の書かれた小さなウィンドウが表示されましたよ!

sisyo.gif
これが、VB.NETのプログラミングの神髄じゃ。つまり、VB.NETのプログラミングは、コントロールの操作に対応した部分にコードを書き、その中で、コントロールのプロパティを取得したり変更したりするようにしていくのじゃ。

deshi.gif
なるほど!

sisyo.gif
それでは最後に二つだけ教えておこう。
まず一つ目。先ほど、プロパティは取得したり変更することができる、と書いたが、プロパティの中には変更ができないものがある。気を付けるように。

deshi.gif
はい!

sisyo.gif
そして二つ目。コントロールのNameプロパティを変えることで、そのコントロールの名前そのものを変えてしまうことができる。じゃが、コード中で変えることはできず、また、名前を変えると、Private Sub ●●●の部分も変わるから気を付けることじゃ。

deshi.gif
はい、わかりました、師匠!

sisyo.gif
うむ! それでは次回は、リストボックスについて教えていくことにする。予習復習はしっかりとしておくようにの。



※次の更新は、『師匠TのチャレンジARSゲーム!』の予定です。お楽しみに!

posted by 裏編 at 13:30| Comment(0) | 師匠のVB.NETどたばた塾 | 更新情報をチェックする