パソコンカレッジ スタッフのひとりごと

パソコンスクールのスタッフが、
初心者から上級者まで役立つ情報をお伝えします。

Visual Basicで、たくさんのボタンを自動生成する(Visual Studio2005以降)

2009-05-25 13:36:42 | Visual Basic
さて、新しい一週間の始まりです。今週も楽しい毎日にしましょう。

今日は、久しぶりにVisual Basicを取り上げます。
Visual Studio 2008 Expressは、無料でMicrosoftのサイトからダウンロードできますので、
興味のある方は、チャレンジしてみてください。

今回のテーマは、「ボタンをコードで自動生成する」です。


ボタンは、フォームのデザイン画面で、予め手動で配置できます。
大体は、それで結構ですが、
大量のボタンを規則正しく配置したいときには、面倒くさかったりします。
そんなときは、コードで自動生成してしまいましょう。

今回は、お題として、電卓を取り上げて説明します。

それでは、適当な名前で、プロジェクトを新規作成してください。

フォームが表示されたら、
テキストボックスを図のように配置します。

これは、手動でお願いします。





テキストボックスの幅は、適当でかまいません。コードで自動調整します。


次に、フォームのタイトルバーをダブルクリックして、コード画面を表示します。

以下のようにコードを記述してください。


Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, 
                           ByVal e As System.EventArgs) Handles MyBase.Load
        Const BUTTON_TEXT As String = "789/456*123-0c=+"
        Const BUTTON_WIDTH As Integer = 30
        Const BUTTON_INTERVAL As Integer = 36
        Const START_X As Integer = 10
        Const START_Y As Integer = 40

        Me.Text = "電卓"
        With TextBox1
            .Width = BUTTON_INTERVAL * 4 - (BUTTON_INTERVAL - BUTTON_WIDTH)
            .Left = START_X
            .Top = START_X
            .TextAlign = HorizontalAlignment.Right
            .ReadOnly = True
        End With

        Dim btn As Button
        For i As Integer = 0 To 3
            For j As Integer = 0 To 3
                btn = New Button
                btn.Size = New Size(BUTTON_WIDTH, BUTTON_WIDTH)
                btn.Location = New Point(START_X + BUTTON_INTERVAL * j, _
                START_Y + BUTTON_INTERVAL * i)
                btn.Text = Mid(BUTTON_TEXT, i * 4 + j + 1, 1)

                Controls.Add(btn)
            Next
        Next

        Me.Width = START_X * 2 + BUTTON_INTERVAL * 4
        Me.Height = START_Y * 2 + BUTTON_INTERVAL * 4
    End Sub





入力できたら、早速確認してみましょう。

「デバッグ」メニューの「デバッグ開始」をクリックします。




すると、電卓が表示されます。




コードの詳しい説明は、省略させていただきますが、
ボタンの大きさを変更する方法をご紹介しておきましょう。

下の画像の赤線の数字を変更するだけで、けっこうです。
ただし、下の赤線の数字は、上の赤線の数字よりも、大きな数字にしてください。
でないと、ボタンがうまく表示されません。





なお、ボタンを押しても、何も反応しません。(そのためのコードは記述していないからです)
今回は、見た目だけです・・・

でも、折角ですから、せめて押したボタンの数字記号が、テキストボックスに表示されるように
コードを追加してみます。

画像を参考に、以下の1行と、イベントプロシージャを追加してください。


AddHandler btn.Click, AddressOf button_click


Private Sub button_click(ByVal sender As Object, ByVal e As System.EventArgs)
TextBox1.Text = CType(sender, Button).Text
End Sub


 


 

記述する場所を間違えないように注意してください。





それでは、改めてデバッグします。
今度は、ボタンをクリックすると、テキストボックスに数字や記号が表示されます。




電卓の実際の機能は、またの機会に取り上げます。

本日は、ここまで。。。

だい

コメント (4)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 都道府県名を表示する関数を... | トップ | アップデートでPC(パソコン... »
最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
Unknown (bebiママ)
2009-05-25 22:56:55
ひょえ~。bebiママには、チョー難しく見える~
返信する
こんばんは (赤面獣)
2009-05-25 23:07:08
無料のVisual Studioがあるのですね。
仕事でたまにプログラムを組んだりするんですが、
コードでコントロールを配置してビシッ!と決まると気持ちいいですよね!
返信する
bebiママさんへ (だい)
2009-05-26 09:13:32
いつもコメントありがとうございます。

たまには、こんな記事もありということで・・・
返信する
赤面獣さんへ (だい)
2009-05-26 09:14:41
プログラムは奥が深くて、分からないことばかりです。
困ったときには、ぜひ力になってください。

これからもよろしくお願いいたします。
返信する

コメントを投稿

Visual Basic」カテゴリの最新記事