| ホーム | 掲示板 | 特集 | サンプル | Tips | リンク | その他 | blog 

Tips
[VS2003]
 日付時刻の演算
 ListBoxにファイル一覧
 ファンクションF10
 WMIでサービス一覧
 YAHOO検索エンジン
[VS2005]
 Administrator権限チェック
 非同期ExecuteReader
 非同期ExecuteReader(CallBack)
 パスの結合
 ファイルを圧縮して保存
 コントロール配列の実装
 DataGridViewのCellイベント
 CSVファイルをDataGridViewに表示
 DataGridViewのリンクセルを見やすく
 DataGridViewマウス右ボタンで選択
 DataGridViewスクロール制御
 DataGridViewのCell移動をEnterで
 DataRepeaterコントロール
 GZ圧縮ファイルを解凍
 ファイルの削除
 ディレクトリ有無チェック
 ファイルのダウンロード
 非同期ファイルダウンロード
 ドライブの一覧
 ファイルのコピー
 ファイル有無チェック
 テキストファイルを読み込む
 特定の文字列を含むファイル検索
 フォームを表示(Show)する
 フォルダ一覧取得
 ドライブ詳細情報取得
 ファイル一覧取得
 テンポラリファイルパス取得
 継承コントロールの作り方
 フォルダの移動
 ファイルの移動
 My.Settingの利用
 MySQLCommandで抽出
 MySQLDeleteCommandで削除
 MySQLInsertCommandで挿入
 MySQLSelectCommandで抽出
 MySQLUpdateCommandで更新
 ネットワークに繋がってる?
 ネットワーク接続イベント取得
 固定長テキストファイルを読む
 Oracleストアドファンクション呼出1
 Oracleストアドファンクション呼出2
 OracleのLong Row型の画像を表示
 OracleのLong Row型をファイル保存
 Oracleパラメータクエリ実行
 ORACLE接続文字列生成
 VS2005でPing
 非同期でPing
 VB6のPrinterオブジェクトを.NETで
 Reportでテーブル形式表示
 ReportViewerでパラメータ設定
 メール送信
 非同期でメール送信
 メール送信(MailMessage利用)
 シリアル通信プログラム
 シリアル通信(文字列送信)
 二重起動の禁止
 特殊フォルダ取得
 スプラッシュウインドウ表示
 テーブルへ複数行の挿入
 CSVファイルをテーブルへ挿入
 テーブルへ複数行の挿入(マッピング)
 SqlBulkCopyで郵便番号データ処理
 SQL Server接続文字列生成
 Stopwatchで時間の計測
 システムサウンド再生
 CSVファイル読み込み
 固定長テキストファイルを読む2
 TableAdapterでTransaction
[VS2005] DataRepeaterコントロール 2008/03/26
VB6時代には提供されていた、DataRepeaterコントロールは、.NETになり提供されなくなりましたが、 Visual Basic Power Packs 3.0 として提供されています。このPower Packsには、他にも、
・Interop Forms Toolkit
・Printer Compatibility Library
・Line and Shape Controls
・PrintForm Component
が含まれています。ここでは、これらの説明はしませんが、名前から想像できる機能が提供されています。
 
■Visual Basic Power Packs 3.0をインストール
 
http://www.microsoft.com/downloads/details.aspx?FamilyId=371368A8-7FDC-441F-8E7D-FE78D96D4063&displaylang=en より、Power Packsをダウンロードして、インストールしてください。
インストールが完了すると、ツールボックスに「Visual Basic Power Packs 3.0」が追加されます。
 

 
 
■簡単なサンプルの紹介
 
「日本の歴代首相画面」を作っていきます。(なぜ歴代首相なのかは?????)
フォームは、以下のうように特殊なコントロールは利用していません。DataRepeaterコントロールは利用していますが・・・
 

 
 
■ソースコード
Imports System.Data

Public Class Form1

    Private _dt As New DataTable

    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) _
                                                                            Handles MyBase.Load

        'DataTable初期化
        With _dt
            '
            .Columns.Add("Generations"GetType(String))    '代
            .Columns.Add("Name"GetType(String))           '名前
            .Columns.Add("From"GetType(String))           '出身
            .Columns.Add("Image"GetType(Image))           '画像
            .Columns.Add("Popularity"GetType(Integer))    '人気
            '
            .Rows.Add("81代""村山富市""大分県", Image.FromFile("Images\81.jpg"), 10)
            .Rows.Add("82,83代""橋本龍太郎""岡山県", Image.FromFile("Images\82.jpg"), 50)
            .Rows.Add("84代""小渕恵三""群馬県", Image.FromFile("Images\84.jpg"), 40)
            .Rows.Add("85,86代""森喜朗""石川県", Image.FromFile("Images\85.jpg"), 30)
            .Rows.Add("87,88,89代""小泉純一郎""神奈川県", Image.FromFile("Images\87.jpg"), 90)
            .Rows.Add("90代""安倍晋三""山口県", Image.FromFile("Images\90.jpg"), 5)
            .Rows.Add("91代""福田康夫""群馬県", Image.FromFile("Images\91.jpg"), 15)
        End With

        ''バインディング
        Me.lblGenerations.DataBindings.Add("Text"Me._dt, "Generations")
        Me.lblName.DataBindings.Add("Text"Me._dt, "Name")
        Me.lblFrom.DataBindings.Add("Text"Me._dt, "From")
        Me.picFace.DataBindings.Add("Image"Me._dt, "Image")
        Me.tbPopularity.DataBindings.Add("Value"Me._dt, "Popularity")
        Me.pgbPopularity.DataBindings.Add("Value"Me._dt, "Popularity")

        Me.drMain.DataSource = Me._dt
    End Sub

    Private Sub btnDel_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) _
                                                                            Handles btnDel.Click
        '削除
        Dim lbl As Label = CType(Me.drMain.CurrentItem.Controls("lblName"), Label)
        If MessageBox.Show(lbl.Text & vbCrLf & _
                           "を削除してもよろしいですか?""確認", MessageBoxButtons.OKCancel, _
                           MessageBoxIcon.Question) <> Windows.Forms.DialogResult.OK Then Exit Sub
        Me._dt.Rows.RemoveAt(Me.drMain.CurrentItemIndex)
    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) _
                                                                            Handles btnAdd.Click
        '追加
        Me._dt.Rows.Add("999代""ビリケン""ビリ県", Image.FromFile("Images\NEW.jpg"), 100)

    End Sub

    Private Sub btnExit_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) _
                                                            Handles btnExit.Click
        '終了
        Me.Close()
    End Sub
End Class
特に説明する箇所はないと思いますが、削除処理を行っている42行目のコードは、現在のアイテム内の特定のコントロールを参照するコードです。
 
■実行結果
 

 
■一言
 
だいぶ待ってリリースされましたね。大容量のデータを対象にした場合はどうなるのか不明・・・たぶんオーナードローなんだろうな。

Copyright © 2005 tadahiro higuchi. All Rights Reserved.