tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDataGridView内のComboBoxに値セットするには
記事No8871
投稿日: 2009/04/21(Tue) 13:18
投稿者赤鯱
いつもお世話になっております。
DataGridView内にComboBoxを作成し、取得したデータをConboBoxに設定しようとしたのですが、エラーになります。
どのように処理すればよいのでしょうか。
宜しくお願い致します。

'商品データのセット
Dim T_Shouhin As New DataTable("T_Shouhin")
T_Shouhin.Columns.Add("Display", GetType(String))
T_Shouhin.Columns.Add("Value", GetType(Integer))
sSQL = Make_ShouhinSql(0)
sqlCmd = New SqlClient.SqlCommand(sSQL, sqlConn)        'SQLコマンドオブジェクトの作成
sqlRdr = sqlCmd.ExecuteReader()                         'SQLコマンドの実行
While sqlRdr.Read()
    'コンボボックス内に商品をセット
    T_Shouhin.Rows.Add(sqlRdr!CODE_NAME, sqlRdr!CODE)
End While

Dim column1 As New DataGridViewComboBoxColumn()
column1.DataPropertyName = "T_Shouhin"
column1.DataSource = T_Shouhin
column1.ValueMember = "Value"
column1.DisplayMember = "Display"
DataGridView1.Columns.Add(column1)
column1.Name = "商品分類"
DataGridView1.Columns(0).Width = 240

〜請求明細情報取得処理後〜

For i = 0 To DataGridView1.RowCount - 1
    If i = DataGridView1.RowCount - 1 Then
        Exit For
    End If
    '請求明細の商品コードをコンボボックスにセット
    '商品コードの0002をセットしたところエラーになりました。
    DataGridView1.Rows(i).Cells(0).Value = DataGridView1.Rows(i).Cells(5).Value
Next
        
DataGridView1.Columnsには、
0001:AAAAAA
0002:BBBBBB
0003:CCCCCC
0004:DDDDDD
のように表示されています。

開発:VB2008

宜しくお願い致します。

[ツリー表示へ]
タイトルRe: DataGridView内のComboBoxに値セットするには
記事No8875
投稿日: 2009/04/23(Thu) 10:26
投稿者花ちゃん
> DataGridView内にComboBoxを作成し、取得したデータをConboBoxに設定しようとしたのですが、エラーになります。

> For i = 0 To DataGridView1.RowCount - 1
>     If i = DataGridView1.RowCount - 1 Then
>         Exit For
>     End If
>     '請求明細の商品コードをコンボボックスにセット
>     '商品コードの0002をセットしたところエラーになりました。
>     DataGridView1.Rows(i).Cells(0).Value = DataGridView1.Rows(i).Cells(5).Value
> Next

何方からも回答が無いようなので、エラーがでるならどのようなエラーなのか、正確な
エラー内容を提示しないと見ている人に解らない場合があります。
推測ですが、コンボボックスにセットされていない値を、セットしようとして次の例外が
発生しましたと言ったようなエラーがでているのではないですか。
(全角・半角・大文字・小文字 等の不一致含む)

# バグ取り依頼のような質問をされるとレスがつきにくいです。
 コードを提示される場合は、何を使用としているのか、コードにコメントでも書いて
 おくと他の人が見た場合理解しやすかと。
 たとへば、下記のコードの部分とか。

>     If i = DataGridView1.RowCount - 1 Then
>         Exit For
>     End If

For i = 0 To DataGridView1.RowCount - 2 で済むような。

# コンボボックスの値変更によるイベント - タロ 09/04/08-19:00 No.8854 と同じ方
 ですよね。
 前回の分はどうなりました。
 無暗にハンドルネームを変更しないで下さい(捨てハン禁止)

[ツリー表示へ]