tagCANDY CGI VBレスキュー(花ちゃん) - コントロールの動的配置とそれぞれの制御(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
コントロールの動的配置とそれぞれの制御(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

コントロールの動的配置とそれぞれの制御(VB6.0) [No.66の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2009/12/27 12:54
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[コントロール共通][基本コード][]                                    *
* キーワード:動的作成,実行時に作成,配列,テキストボックス,ボタン,イベント処理     *
***********************************************************************************

元質問:実行時、コントロールの生成 - 裕治  2003/01/14-15:48 No.2155

元質問:コントロールの動的配置とそれぞれの制御 - tunenon 2003/12/12-17:24 No.7102
------------------------------------------------------------------------------------


------------------------------------------------------------------------------------
Re: 実行時、コントロールの生成 - A221  2003/01/14-15:56 No.2157
------------------------------------------------------------------------------------

昔手遊びに作ったものでよければどうぞ。
フォームにコピペして貼ってください。
'------------------------------------------------
Option Explicit
Private WithEvents btnObj As CommandButton
Private addlabel As Label
Private counter As Long

Private Sub btnObj_Click()
'クリックでコントロールを動的に追加
counter = counter + 1
Set addlabel = Controls.Add("VB.Label", "addLabel" & counter, Form1)
With addlabel
    .Move 0, counter * 200, 1000, 200
    .Caption = "count" & counter
    .Visible = True
End With

End Sub

Private Sub Form_Load()
'一番最後のFormが追加したいコンテナ
Set btnObj = Controls.Add("VB.CommandButton", "btnObj", Form1)
With btnObj
    .Caption = "test"
    .Move Form1.Width - 1000, Form1.Height - 1000, 500, 500
    .Visible = True
End With

Set addlabel = Controls.Add("VB.Label", "addLabel" & counter, Form1)
With addlabel
    .Caption = "count" & counter
    .Move 0, 0, 1000, 200
    .Visible = True
End With
End Sub

メンテ

Page: 1 |

コントロールの動的配置とそれぞれの制御(VB6.0)_1  (No.1の個別表示) [スレッド一覧へ]
日時: 2011/04/05 13:04
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[コントロール共通][基本コード][]                                    *
* キーワード:動的作成,実行時に作成,配列,テキストボックス,ボタン,イベント処理     *
***********************************************************************************

----------------------------------------------------------------------
Re: 実行時、コントロールの生成 - 花ちゃん  2003/01/14-17:45 No.2158
----------------------------------------------------------------------

ヘルプで Add メソッド (Controls コレクション) の使用例 を検索して見て下さい。
サンプルいくつかと詳しい解説が載っています。 又は、下記参照


当サイト内を[Controls.Add]での検索結果
http://tinyurl.com/yuxh46

メンテ
コントロールの動的配置とそれぞれの制御(VB6.0)_2  (No.2の個別表示) [スレッド一覧へ]
日時: 2011/04/05 13:04
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[コントロール共通][基本コード][]                                    *
* キーワード:動的作成,実行時に作成,配列,テキストボックス,ボタン,イベント処理     *
***********************************************************************************

-------------------------------------------------------------------------------
Re: コントロールの動的配置とそれぞれの制.. - nanashi  2003/12/12-17:45 No.7103
-------------------------------------------------------------------------------

動的な配置などはやったことないですけど、以下のようにしたら動きました。

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

メンテ
コントロールの動的配置とそれぞれの制御(VB6.0)_3  (No.3の個別表示) [スレッド一覧へ]
日時: 2011/04/05 13:05
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[コントロール共通][基本コード][]                                    *
* キーワード:動的作成,実行時に作成,配列,テキストボックス,ボタン,イベント処理     *
***********************************************************************************

元質問:コントロールの自動作成 - kamurin  2004/03/22-15:37 No.8463

データベースのデータを表示させる処理でレコード数分のTextBoxを作りたいのですが・

-----------------------------------------------------------------
Re: コントロールの自動作成 - とろ  2004/03/22-16:52 No.8466
-----------------------------------------------------------------

VB6 以前ならば次のような感じ。

Text1, Text2, Command1 をフォーム上に配置して、
下のコードを実行して下さい。
# デザイン時に Text2 の Index は 0 にしておいて下さい。

Text1 に数値(質問の場合、レコード数)を入力して、ボタンを押すと
その数だけ Text2 が作成されます。

'----------------------------------------
Option Explicit
Private Sub Command1_Click()
  Dim i As Integer
  For i = 1 To Text2.UBound
    Unload Text2(i)
  Next i
  For i = 1 To CInt(Text1.Text)
    Load Text2(i)
    With Text2(i)
      .Top = (Text2(0).Height + 30) * i
      .Visible = True
    End With
  Next i
End Sub
Private Sub Form_Load()
    Text2(0).Visible = False
    Text1.Text = "10"
End Sub


メンテ
マウスクリックでテキスト作成(VB6.0)_4  (No.4の個別表示) [スレッド一覧へ]
日時: 2011/04/05 13:12
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[コントロール共通][基本コード][]                                    *
* キーワード:動的作成,実行時に作成,配列,テキストボックス,ボタン,イベント処理     *
***********************************************************************************


元質問:マウスクリックでテキスト作成 - 川島  2004/04/12-13:52 No.8641

フォーム上で左マウスクリックを押したらテキストエリアを作るようにしたいのですが、マウス周りはなんとなくわかるんですが、どうやったらテキストエリアが作れるのかがわかりません。

----------------------------------------------------------------------------
Re^6: 解決しました。ありがとうございます.. - 川島  2004/04/12-15:52 No.8652
----------------------------------------------------------------------------

kamurinさんサムさんご協力ありがとうございました。m(_ _)m
とりあえず完成いたしました。

Dim MusX As Single
Dim MusY As Single
Dim Index As Integer 'テキストボックスの数form_Loadとかで初期化

Private Sub Form_MouseDown(Button As Integer, _
                            Shift As Integer, X As Single, Y As Single)
    MusX = X
    MusY = Y
End Sub

Private Sub Form_Load()
    Index = 1
    Text1(Index - 1).Visible = False
End Sub

Private Sub Form_Click() 'クリックした時に、テキストボックスを作成

    If Index > 1 Then
        Load Text1(Index - 1)
        '2つ目以降なら作る
    End If
    
    Text1(Index - 1).Visible = True
    'クリック位置に移動
    Text1(Index - 1).Top = MusY
    Text1(Index - 1).Left = MusX
    Index = Index + 1
End Sub

ほとんどkamurinさんの写しですが(笑)
本当に助かりました。
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ