掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DataGridViewのコンボボックスについて (ID:142052)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
環境:WinXP(SP3) VB2005 Oracle9i テーブルに四則演算子を入れるのに DataGridView のコンボボックスを使用したところ System.ArgumentException:DataGridViewComboBoxcell の値が有効ではありません この既定のダイアログを置き換えるには、DataError イベントをハンドルしてください。 のエラーが発生します。 そこで DataErrorをハンドルしてみたのですが DataGridView には1行しか表示していないにも かかわらず2,4,20行目でエラーが発生している みたいなのですがなぜ表示してもいない行で エラーが発生しているかわかりません。 ご教授願います。 Dim column1 As New DataGridViewComboBoxColumn() Dim column2 As New DataGridViewComboBoxColumn() Dim column3 As New DataGridViewComboBoxColumn() Dim column4 As New DataGridViewComboBoxColumn() column1.Items.Add("+") column1.Items.Add("−") column1.Items.Add("×") column1.Items.Add("÷") column2.Items.Add("+") column2.Items.Add("−") column2.Items.Add("×") column2.Items.Add("÷") column3.Items.Add("+") column3.Items.Add("−") column3.Items.Add("×") column3.Items.Add("÷") column4.Items.Add("+") column4.Items.Add("−") column4.Items.Add("×") column4.Items.Add("÷") -- コンボボックス設定処理 -- With DataGridView2 Select Case ChotatsuK Case "内作" '式列にバインドされているデータを表示する column1.DataPropertyName = "式1" column2.DataPropertyName = "式2" column3.DataPropertyName = "式3" column4.DataPropertyName = "式4" '式列の代わりにComboBox列を表示する .Columns.Insert(.Columns("式1").Index, column1) .Columns.Remove("式1")column1.Name = "式1" .Columns.Insert(.Columns("式2").Index, column2) .Columns.Remove("式2") column2.Name = "式2" .Columns.Insert(.Columns("式3").Index, column3) .Columns.Remove("式3") column3.Name = "式3" .Columns.Insert(.Columns("式4").Index, column4) .Columns.Remove("式4") column4.Name = "式4" Case "外作", "購入" '式列にバインドされているデータを表示する column2.DataPropertyName = "式2" column3.DataPropertyName = "式3" column4.DataPropertyName = "式4" '式列の代わりにComboBox列を表示する .Columns.Insert(.Columns("式2").Index, column2) .Columns.Remove("式2") column2.Name = "式2" .Columns.Insert(.Columns("式3").Index, column3) .Columns.Remove("式3") column3.Name = "式3" .Columns.Insert(.Columns("式4").Index, column4) .Columns.Remove("式4") column4.Name = "式4" Case "材料" '式列にバインドされているデータを表示する column1.DataPropertyName = "式1" '式列の代わりにComboBox列を表示する .Columns.Insert(.Columns("式1").Index, column1) .Columns.Remove("式1") column1.Name = "式1" End Select End With -- DataError処理 -- Private Sub DataGridView2_DataError(ByVal sender As Object, _ ByVal e As DataGridViewDataErrorEventArgs) _ Handles DataGridView2.DataError If Not (e.Exception Is Nothing) Then MessageBox.Show(Me, _ String.Format("({0}, {1}) のセルでエラーが発生しました。" + _ vbCrLf + vbCrLf + "説明: {2}", _ e.ColumnIndex, e.RowIndex, e.Exception.Message), _ "エラーが発生しました", _ MessageBoxButtons.OK, _ MessageBoxIcon.Error) End If End Sub http://dobon.net/vb/dotnet/ 上記URLを参考にしました。 不透明、不明な部分がございましたら ご指摘のほど宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.