お世話になります。
ローカルアプリを作成しています。
一覧画面と詳細画面の親子関係の画面があり、一覧画面にはDataGridviewを
使用してデータを表示しています。この一覧画面からグリッドをクリック
すると詳細画面へ遷移し、行データの詳細内容を表示させたいのですが、
モードレスで詳細画面を表示し、詳細画面のボタンもしくは一覧画面の
行データをクリックすると詳細画面のデータ表示が切り替わる様な一覧と詳細が連動しているような画面処理を行いたいです。
初歩的な質問で申し訳無いのですがよろしくお願い致します。
詳細画面にデータ受け渡し用の関数を作っておいて、
DataGridview のクリックイベントでその関数を
呼んでみてください。
これでどうでしょう。
Public Class Form1
Private _ds As DataSet
Private _subForm As Form2
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
_ds = CreateSampleDataSet()
Me.BindingSource1.DataSource = _ds
Me.BindingSource1.DataMember = "営業所"
Me.BindingSource2.DataSource = Me.BindingSource1
Me.BindingSource2.DataMember = "営業所従業員"
Me.DataGridView1.DataSource = Me.BindingSource1
Me.DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter
End Sub
Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
_subForm = New Form2()
_subForm.DataGridView1.DataSource = Me.BindingSource2
_subForm.Show(Me)
End Sub
Private Function CreateSampleDataSet() As DataSet
Dim ds As New DataSet()
Dim tbl1 As DataTable = ds.Tables.Add("営業所")
tbl1.Columns.Add("営業所CD", GetType(Integer))
tbl1.Columns.Add("営業所名", GetType(String))
tbl1.Rows.Add(1, "東京本店")
tbl1.Rows.Add(2, "北海道支店")
tbl1.Rows.Add(3, "大阪営業所")
tbl1.PrimaryKey = New DataColumn() {tbl1.Columns("営業所CD")}
Dim tbl2 As DataTable = ds.Tables.Add("従業員")
tbl2.Columns.Add("従業員CD", GetType(Integer))
tbl2.Columns.Add("従業員名", GetType(String))
tbl2.Columns.Add("営業所CD", GetType(Integer))
tbl2.Rows.Add(1000, "山田", 1)
tbl2.Rows.Add(1010, "田中", 1)
tbl2.Rows.Add(1020, "山中", 1)
tbl2.Rows.Add(2030, "川村", 2)
tbl2.Rows.Add(2040, "村川", 2)
tbl2.Rows.Add(2050, "村上", 2)
tbl2.Rows.Add(2060, "上村", 2)
tbl2.Rows.Add(2070, "河村", 2)
tbl2.Rows.Add(3080, "長谷川", 3)
tbl2.Rows.Add(3090, "五十嵐", 3)
tbl2.PrimaryKey = New DataColumn() {tbl2.Columns("従業員CD")}
ds.Relations.Add("営業所従業員", tbl1.Columns("営業所CD"), tbl2.Columns("営業所CD"))
tbl1.Columns.Add("人数", GetType(Decimal), "COUNT(Child(営業所従業員).従業員CD)")
ds.AcceptChanges()
Return ds
End Function
End Class
とくま様、魔界の仮面弁士様
解答をお寄せ頂きありがとうございました。お寄せ頂いた解答を参考に、
詳細画面側にBindingNavigatorコントロールを使用し、ボタンクリックと、
一覧画面側の行データクリックイベントで、データが切り替わる処理を
行うことが出来ました。本当にありがとうございました。