[リストへもどる]
一括表示

投稿時間:2003/12/12(Fri) 17:24
投稿者名:tunenon
Eメール:tune@gold.ocn.ne.jp
URL :
タイトル:
コントロールの動的配置とそれぞれの制御
初めて投稿させていただきます。

Controls.Addメソッドを使って、フォームにコマンドボタンを3つ動的に配置します。
それぞれのコマンドボタンのCaptionを「朝」「昼」「夜」と設定し、
それぞれのClickイベントを
「おはようございます」、「こんにちは」、「おやすみなさい」
のように、別々に制御するにはどのようにすればよいのでしょうか?

以下のように、考えてみましたがうまくいきませんので質問させていただきます。
よろしくお願いします。

************************************************************************
Option Explicit
Private WithEvents btnObj As CommandButton

Private Sub myCmd1_Click()
    MsgBox "おはようございます"
End Sub

Private Sub myCmd2_Click()
    MsgBox "こんにちは"
End Sub
Private Sub myCmd3_Click()
    MsgBox "おやすみなさい"
End Sub

Private Sub Form_Load()
    Dim i As Integer
    For i = 1 To 3
        Set btnObj = Controls.Add("VB.CommandButton", "myCmd" & i)
        With btnObj
            .Visible = True
            .Width = 2000
            .Top = i * 500
            .Left = 500
            .Height = 500
        End With
        Select Case i
            Case 1
                btnObj.Caption = "朝"
            Case 2
                btnObj.Caption = "昼"
            Case 3
                btnObj.Caption = "夜"
        End Select
    Next i
End Sub

投稿時間:2003/12/12(Fri) 17:45
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re: コントロールの動的配置とそれぞれの制御
動的な配置などはやったことないですけど、以下のようにしたら動きました。

Option Explicit

Private WithEvents myCmd1 As CommandButton
Private WithEvents myCmd2 As CommandButton
Private WithEvents myCmd3 As CommandButton

Private Sub myCmd1_Click()
    MsgBox "おはようございます"
End Sub

Private Sub myCmd2_Click()
    MsgBox "こんにちは"
End Sub

Private Sub myCmd3_Click()
    MsgBox "おやすみなさい"
End Sub

Private Sub Form_Load()
    Dim sBuff As String
    Dim i As Integer
    Dim btnObj As CommandButton
    
    For i = 1 To 3
        Select Case i
            Case 1
                Set myCmd1 = Controls.Add("VB.CommandButton", "myCmd" & i)
                Set btnObj = myCmd1
                sBuff = "朝"
                
            Case 2
                Set myCmd2 = Controls.Add("VB.CommandButton", "myCmd" & i)
                Set btnObj = myCmd2
                sBuff = "昼"
                
            Case 3
                Set myCmd3 = Controls.Add("VB.CommandButton", "myCmd" & i)
                Set btnObj = myCmd3
                sBuff = "夜"
                
        End Select
        
        With btnObj
            .Visible = True
            .Width = 2000
            .Top = i * 500
            .Left = 500
            .Height = 500
            .Caption = sBuff
        End With
        
        Set btnObj = Nothing
    Next i
End Sub

投稿時間:2003/12/12(Fri) 18:01
投稿者名:tunenon
Eメール:tune@gold.ocn.ne.jp
URL :
タイトル:
Re^2: コントロールの動的配置とそれぞれの制御
nanashiさん、早々の回答ありがとうございました。

教えていただいたコードでうまくいきました。
ありがとうございました。

これからもよろしくお願いします。

投稿時間:2004/01/30(Fri) 13:14
投稿者名:Dai
Eメール:
URL :
タイトル:
動的配置したボタンの色
過去ログに対する便乗質問です。 (^。^;)

動的配置したボタンの背景色って変更出来ないのでしょうか?

styleプロパティは値のみ取得可能ですってメッセージが出ました。
確かにヘルプには実行時は値の取得のみと書かれておりました。
動的配置は常に”実行時”という事。。。なのですよね??

投稿時間:2004/01/30(Fri) 13:42
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
不必要なスレッドは上げないで
新たな質問の場合は別スレッドでお願いします。
引用はリンクを張って頂ければ十分かと思います。

一応掲示板のログやバックアップを取っているので、あまり古い記事が
移動すると困る場合がでてきますので。