[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/02/18(Fri) 11:45
投稿者名:NAO
Eメール:
URL :
タイトル:
テキストボックスを複数個表示
みなさんこんにちは
明細行のようなイメージで、テキストボックスを
複数個表示させたいと思っています。

"社員コード"  "社員名"
99999999    XXXXXXXXXXX
99999999    XXXXXXXXXXX
99999999    XXXXXXXXXXX
  〃            〃

上記の99999999とXXXXXXXXXXXをテキストボックスで行い、入力を可能として、
各々行の値も取得したいと思っているのですが、
どのようなやり方がお勧めでしょうか。
過去ログも見たのですが、ピンとくるものが無く投稿しました。
ご返答よろしくお願いします。

投稿時間:2005/02/18(Fri) 12:05
投稿者名:いな
Eメール:
URL :
タイトル:
Re: テキストボックスを複数個表示
お疲れ様です。

既に検討されているかも知れませんが、
テキストボックスのコントロール配列を使用することによって
値の書き込み、読み込み処理を下記のようにLoopで行うことによって
単純化させることができ、お勧めです。

    For i to 〜〜
        Text1(i).Text = Array(i)
    Next

っていう回答で、いいのかな??

投稿時間:2005/02/18(Fri) 13:35
投稿者名:NAO
Eメール:
URL :
タイトル:
Re^2: テキストボックスを複数個表示
返答ありがとうございます。
すいません、私の質問の内容が不足していまして
実は、テキストボックスを作成する行の個数が、
場合により異なるので、動的にテキストボックス
を作成したいのですが、過去のログを見て
まねしたのですが、うまくいきません。
すいませんが、どのように書けばよいか分かるでしょうか。

投稿時間:2005/02/18(Fri) 13:45
投稿者名:じゃんぬねっと
Eメール:
URL :http://jeanne.wankuma.com/
タイトル:
Re^3: テキストボックスを複数個表示
じゃんぬねっと です。

> 実は、テキストボックスを作成する行の個数が、
> 場合により異なるので、動的にテキストボックス
> を作成したいのですが、過去のログを見て
> まねしたのですが、うまくいきません。

コントロール配列を 1 つだけ作って、Index を変えて、
Load() するだけですよね?

> すいません、私の質問の内容が不足していまして

今回もですが、結局、どこまで出来て「どの部分」がわからないかを提示して頂かないと...

投稿時間:2005/02/18(Fri) 15:55
投稿者名:いな
Eメール:
URL :
タイトル:
Re^4: テキストボックスを複数個表示
私の場合、こんな関数を用意してます。
内容の解析をしてみれば幸せになれると思います。

'*********************************************************************
' 機    能  :新規コントロールを Load し、初期設定を行う
' 引 き 数  :ARG1 - 対象コントロール
'            ARG2 - 指定 Top 値
'            ARG3 - 指定 Left 値
'            ARG4 - 指定 Width 値
'            ARG5 - 指定 TabIndex 値
'            ARG6 - 指定 Container
'            ARG7 - 可視区分
'*********************************************************************
Public Sub rInitLoadObject(objTarget As Object, ByVal lngTop As Long, ByVal lngLeft As Long,
Optional ByRef intWidth As Integer, Optional ByRef intTabIndex As Integer = -1, Optional
objContainer As Object, Optional ByVal blnVisible As Boolean = True)
    On Error Resume Next

    '作成
    Load objTarget

    '各種プロパティ設定
    With objTarget
        .Visible = blnVisible

        If Not objContainer Is Nothing Then
            Set .Container = objContainer
        End If

        .Top = lngTop
        .Left = lngLeft
        If intWidth Then
            .width = intWidth
        End If

        If intTabIndex <> -1 Then
            .TabIndex = intTabIndex

            intTabIndex = intTabIndex + 1   '加算
        End If
    End With

    Err.Clear
End Sub

投稿時間:2005/02/18(Fri) 16:57
投稿者名:GOD
Eメール:
URL :
タイトル:
Re: テキストボックスを複数個表示
> 上記の99999999とXXXXXXXXXXXをテキストボックスで行い、入力を可能として、
> 各々行の値も取得したいと思っているのですが、
> どのようなやり方がお勧めでしょうか。
>
私ならグリッド系(VB6ならMSFlexGrid, MSHFlexGridが付属しています。)のコントロールをお薦めしま
す。
テキストボックスだとフォームから溢れるくらいデータがあるときはスクロール処理とかしなければい
けなく
なるので結構辛いかと。(ボタンを用意して次ページ/前ページとかするのかな。)
それとも表示する最大件数が既に決まっているのかな?

MSFlexGridは編集機能が無いので自分で実装しなければなりませんが、MSDNの検索タブで「MSFlexGrid
に関す
るヒントとコツ」を検索してそのページの「グリッド データの編集」を見てもらえばよいかと。(単純
な票形式
の表示なら十分かと。)
有料でよいならVSFlexGrid(販売元:グレープシティ社)という編集機能のついたものがあります。

投稿時間:2005/02/18(Fri) 20:21
投稿者名:Say
Eメール:
URL :
タイトル:
Re^2: テキストボックスを複数個表示
> テキストボックスだとフォームから溢れるくらいデータがあるときはスクロール処理とかしなければい
> けなく
> なるので結構辛いかと。(ボタンを用意して次ページ/前ページとかするのかな。)
PictureBoxの二重張りをすればつらくないのでは?

> MSFlexGridは編集機能が無いので自分で実装しなければなりませんが、
DataGrid使う、という手もあります。
DB接続がいやならオンメモリレコードセット使えばいいし。

MS Excelがインストールされているなら、
MS Spreadsheetコントロールを使う、という手もアリかと。