C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: DataGridの列の幅を設定したい


(過去ログ 25 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■11589 / inTopicNo.1)  DataGridの列の幅を設定したい
  
□投稿者/ かざん (1回)-(2007/12/18(Tue) 12:42:55)

分類:[VB.NET/VB2005] 

2007/12/18(Tue) 12:54:01 編集(投稿者)
はじめまして、かざんです。
分からないことがあるので教えてください。よろしくお願いします。
環境:	WindowsXPPro
	VB.NET2003
	Oracle 10g

------------------------------------------------------------------------------------------

       'データセットオブジェクト
        Dim DataSet1 As DataSet = New DataSet("メニュー")

        'データセットにテーブルを追加
        Dim DataTable1 As DataTable = DataSet1.Tables.Add("MENU_T")

        'データセットテーブルにフィールド追加
        DataTable1.Columns.Add("メニュー名")
        DataTable1.Columns.Add("価格")

        'SQLコマンドセット(0:メニューコード/1:メニュー名/2:価格)
        strSql = "select * from MENU_T order by ME_CODE"

        'データ取得
        tblMenu = GetData(strSql)

        'レコードがなくなるまで繰り返す
        intCnt1 = 0
        While intCnt1 < tblMenu.GetLength(0)
            'テーブルオブジェクトに挿入する
            DataTable1.Rows.Add(New Object() {tblMenu(intCnt1, 1), tblMenu(intCnt1, 2)}
            intCnt1 += 1
        End While

        'データグリッドオブジェクトにデータセットテーブルをリンクする
        DataGrid1.SetDataBinding(DataSet1, "MENU_T")

------------------------------------------------------------------------------------------

このような感じでデータベーステーブル「MENU_T」の内容をデータグリッド「DataGrid1」に表示しています。
GetData()はSELECT文の検索結果を二次元配列で取得するメソッドです。
このDataGrid1の各行の幅を設定したいのですが、DataGridTableStyle及びDataGridTextBoxColumnの設定など、
いろいろ調べて試してみたのですがどれもうまくいきません。
何か間違っているのでしょうか。
分かる方がいらしたら教えてください。
よろしくお願いします。

引用返信 編集キー/
■11596 / inTopicNo.2)  Re[1]: DataGridの列の幅を設定したい
□投稿者/ 特攻隊長まるるう (105回)-(2007/12/18(Tue) 14:06:51)
No11589 (かざん さん) に返信
かなり昔の話ですが、
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200404/04040077.txt
引用返信 編集キー/
■11600 / inTopicNo.3)  Re[2]: DataGridの列の幅を設定したい
□投稿者/ かざん (2回)-(2007/12/18(Tue) 15:46:42)
2007/12/18(Tue) 15:47:20 編集(投稿者)
No11596 (特攻隊長まるるう さん) に返信
> ■No11589 (かざん さん) に返信
> かなり昔の話ですが、
> http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200404/04040077.txt

ご返答ありがとうございます。
結果だけ先にお知らせすると、うまく出来ました。

------------------------------------------------------------------------------------------

Option Explicit On 

Private Data As System.Data.DataTable

    Private Sub Test()
        Dim util As SQLUtility = New SQLUtility()
        Dim sql As String
        Dim ts As New DataGridTableStyle()

        'SQL作成
        sql = "select CODE as コード from MST_TABLE"
        'SQL実行
        Data = util.ExecuteQuery(sql)
        'グリッドに入力
        ts.MappingName = Data.TableName
        DataGrid1.TableStyles.Add(ts)
        DataGrid1.DataSource = Data
        DataGrid1.TableStyles(Data.TableName).GridColumnStyles("コード").Width = 100
        If (DataGrid1.CurrentRowIndex > -1) Then
            DataGrid1.UnSelect(DataGrid1.CurrentRowIndex)
        End If
    End Sub

------------------------------------------------------------------------------------------

上記は特攻隊長まるるうさんに教えていただいた参照先に書かれていたものですが、
『型'SQLUtility'は宣言されていません。』というエラーが出ます。
SQLUtilityがどういうものなのか調べてみたのですが、よく分かりませんでした。
後学の為教えていただければと嬉しいです。

そしてDataがDataTableなので、私のプログラムで作ったDataTableを使えばいいかと思い、
以下の様にしてみました。

------------------------------------------------------------------------------------------

       'データセットオブジェクト
        Dim DataSet1 As DataSet = New DataSet("メニュー")

        'データセットにテーブルを追加
        Dim DataTable1 As DataTable = DataSet1.Tables.Add("MENU_T")

        'データセットテーブルにフィールド追加
        DataTable1.Columns.Add("メニュー名")
        DataTable1.Columns.Add("価格")

        'SQLコマンドセット(0:メニューコード/1:メニュー名/2:価格)
        strSql = "select * from MENU_T order by ME_CODE"

        'データ取得
        tblMenu = GetData(strSql)

        'レコードがなくなるまで繰り返す
        intCnt1 = 0
        While intCnt1 < tblMenu.GetLength(0)
            'テーブルオブジェクトに挿入する
            DataTable1.Rows.Add(New Object() {tblMenu(intCnt1, 1), tblMenu(intCnt1, 2)}
            intCnt1 += 1
        End While

        Dim ts As New DataGridTableStyle()

        'グリッドに入力
        ts.MappingName = DataTable1.TableName
        DataGrid1.TableStyles.Add(ts)
        DataGrid1.DataSource = DataTable1
        DataGrid1.TableStyles(DataTable1.TableName).GridColumnStyles(0).Width = 150
        DataGrid1.TableStyles(DataTable1.TableName).GridColumnStyles(1).Width = 60
        If (DataGrid1.CurrentRowIndex > -1) Then
            DataGrid1.UnSelect(DataGrid1.CurrentRowIndex)
        End If

------------------------------------------------------------------------------------------

これでうまい具合にいきました。
本当にありがとうございました!

解決済み
引用返信 編集キー/
■11601 / inTopicNo.4)  Re[3]: DataGridの列の幅を設定したい
□投稿者/ 特攻隊長まるるう (106回)-(2007/12/18(Tue) 16:50:59)
No11600 (かざん さん) に返信
>『型'SQLUtility'は宣言されていません。』というエラーが出ます。
>SQLUtilityがどういうものなのか調べてみたのですが、よく分かりませんでした。
当然でしょう。そんなものは無いです。これを最初に書いているのは質問者の方です。
常識で考えて、自作のクラスなり、関数を書いた場合は説明するものですが、質問者
というのは、大半がその説明を行わないというのが常識となっております。

このため、回答者は、その内容を類推して回答をしております。ほとんどの回答は
そのユーザ定義のコードに影響されないものです。敢えてそこには触れません。
触れたくありません。。。たまにその中(つまりは質問文に書かれていないコード)
に問題の原因があったりするので、困るのですが。。。

ヘルプ(MSDN)でキーワード検索して出てこなければ、ほぼ100%ユーザ定義のクラスです。
ググっておよそ5000件未満なら、同じくユーザ定義のクラスです。
探しても無駄です。質問者のローカルにしか、その内容は存在しません。
解決済み
引用返信 編集キー/
■11602 / inTopicNo.5)  Re[4]: DataGridの列の幅を設定したい
□投稿者/ かざん (3回)-(2007/12/18(Tue) 17:19:51)
2007/12/18(Tue) 17:29:07 編集(投稿者)

No11601 (特攻隊長まるるう さん) に返信
> ■No11600 (かざん さん) に返信
> >『型'SQLUtility'は宣言されていません。』というエラーが出ます。
> >SQLUtilityがどういうものなのか調べてみたのですが、よく分かりませんでした。
> 当然でしょう。そんなものは無いです。これを最初に書いているのは質問者の方です。
> 常識で考えて、自作のクラスなり、関数を書いた場合は説明するものですが、質問者
> というのは、大半がその説明を行わないというのが常識となっております。
>
> このため、回答者は、その内容を類推して回答をしております。ほとんどの回答は
> そのユーザ定義のコードに影響されないものです。敢えてそこには触れません。
> 触れたくありません。。。たまにその中(つまりは質問文に書かれていないコード)
> に問題の原因があったりするので、困るのですが。。。
>
> ヘルプ(MSDN)でキーワード検索して出てこなければ、ほぼ100%ユーザ定義のクラスです。
> ググっておよそ5000件未満なら、同じくユーザ定義のクラスです。
> 探しても無駄です。質問者のローカルにしか、その内容は存在しません。

なるほど。
それは困ったものですね。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -