DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Datagridviewについて

環境/言語:[Windows7 / visual basic2010]
分類:[.NET]

いつもお世話になっています。

MDBのテーブルをバインドしたDataGridViewのある列(ColumnType=DataGridViewComboBoxColumn)

のセルをクリックしたときに、別のDataGridViewのあるダイアログを開き、

そのダイアログ上のDataGridViewのデータをクリックしたら、

クリックしたデータを元のDataGridViewの選択されたセルに入力したいと思っています。

元のDataGirdViewのコンボボックスにバインドしたテーブルと、ダイアログ上のDataGridViewにバインド

したテーブルは同じです。
Private Sub 元のDatagiridView_CellClick(sender as object,e as DataGridViewCellEventHandler)
Dim Dialog as New ダイアログのフォーム名
Dialog.ShowDialog
If Dialog.DialogResult=DialogResult.Ok Then
CType(dataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex),Value=Dialog.SelectedValue
End If
Dialog.Dispose
End Sub

Public Property SelectedValue as object
Qet
If ダイアログのDataGridView.SelectedCells.Count>0 Then
Return ダイアログのDataGridView.SelectedCells(0).value
Else
Return Nothing
End If
End Get
Set
・・・・・・・・
End Set
End Property

あとは、ダイアログ上でCellを選択した時に閉じるのか何かボタンを押して閉じるのかで、ダイアログのDialogResultにOKを渡してから閉じる処理が変わります。

Private Sub 閉じるボタンClick(sender As Object,e as EventArgs)
Me.DialogResult=DialogResult.Ok
Me.Close
End Sub
■No28805に返信(TMさんの記事)
> Private Sub 元のDatagiridView_CellClick(sender as object,e as DataGridViewCellEventHandler)
> Dim Dialog as New ダイアログのフォーム名
> Dialog.ShowDialog
> If Dialog.DialogResult=DialogResult.Ok Then
> CType(dataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex),Value=Dialog.SelectedValue
> End If
> Dialog.Dispose
> End Sub
>
> Public Property SelectedValue as object
> Qet
> If ダイアログのDataGridView.SelectedCells.Count>0 Then
> Return ダイアログのDataGridView.SelectedCells(0).value
> Else
> Return Nothing
> End If
> End Get
> Set
> ・・・・・・・・
> End Set
> End Property
>
> あとは、ダイアログ上でCellを選択した時に閉じるのか何かボタンを押して閉じるのかで、ダイアログのDialogResultにOKを渡してから閉じる処理が変わります。
>
> Private Sub 閉じるボタンClick(sender As Object,e as EventArgs)
> Me.DialogResult=DialogResult.Ok
> Me.Close
> End Sub


TM 様

回答ありがとうございます。

下記のとおりやって見ましたが、うまくいきません。何かアドバイスあればください。

Private Sub Order_subDataGridView_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Order_subDataGridView.CellClick
Dim Dialog As New ItemSelect
Dialog.ShowDialog()
If Dialog.DialogResult = DialogResult.OK Then
CType(Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex), Value) = Dialog.SelectedValue
End If
Dialog.Dispose()
End Sub

#CType(Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex)#, Value) = Dialog.SelectedValue この部分でエラーが発生しています。(Error 1 Value of type 'System.Windows.Forms.DataGridViewCell' cannot be converted to 'Order.Value')


ダイアログのあるフォームに

Public Property SelectedValue As Object
Get
If DataGridView1.SelectedCells.Count > 0 Then
Return DataGridView1.SelectedCells(0).value
Else
Return Nothing
End If
End Get

Set(ByVal value As Object)

End Set
End Property


Private Sub BtnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClose.Click
Me.DialogResult = DialogResult.OK
Me.Close()

よろしくお願いします。
CType(Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex)#, Value) = Dialog.SelectedValueはミスプリントでした。
Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = Dialog.SelectedValue
です。
いい加減なレスをしてすいませんでした。
■No28816に返信(TMさんの記事)
> CType(Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex)#, Value) = Dialog.SelectedValueはミスプリントでした。
> Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = Dialog.SelectedValue
> です。
> いい加減なレスをしてすいませんでした。

何度もすみません、

CType (Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = Dialog.SelectedValue
にして見ましたが、#SelectedValue#のところエラーになってしまいます。
Error1 Syntax error in cast operator; two arguments separated by comma are required.

どこ直せばいいですか?

よろしくお願いします
本当にややこしい書き方ですいません。

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Order_subDataGridView.CellClick
Dim Dialog As New ItemSelect
Dialog.ShowDialog()
If Dialog.DialogResult = DialogResult.OK Then
Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = Dialog.SelectedValue
End If
Dialog.Dispose()
End Sub

で貼り付けてください。
動作確認はしました。よろしくお願いします。
  • 題名: Re[6]: Datagridviewについて
  • 著者: イスラム
  • 日時: 2011/07/31 0:59:52
  • ID: 28820
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No28819に返信(TMさんの記事)
> 本当にややこしい書き方ですいません。
>
> Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Order_subDataGridView.CellClick
> Dim Dialog As New ItemSelect
> Dialog.ShowDialog()
> If Dialog.DialogResult = DialogResult.OK Then
> Order_subDataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = Dialog.SelectedValue
> End If
> Dialog.Dispose()
> End Sub
>
> で貼り付けてください。
> 動作確認はしました。よろしくお願いします。

TM様

ありがとうございます。

おかげさまで解決できました。うまく動作してます。

また機会がありましたらよろしくお願いします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板