Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 848
  • Last Modified:

How to link two DataGridViews

On a Windows Form I have two DataGridViews, one for each of two related tables.  They are related on a common Key_ID field.  I want them to always stay linked on that Key_ID so that the selected rows stay in sync and if Key_ID is selected in on DataGridView the row with the same Key_ID is selected in the other DataGridView.

I'm currently using a ComboBox bound as follows to link them:
Data Source:  BindingSource1
Display Member:  Some Text
Value Member: Table1.Key_ID
Selected Value: Table2.Key_ID

The problem with this is that when I scroll down through the rows the textbox I have capturing the information I need is a row behind.  It displays the value from the row I have just left not the current row.  I have a SQL query run on the ComboBox.SelectedIndexChanged event.

I'd like to do away with the combobox entirely and just link the two DataGridView directly.  Any ideas?  
I'm using VB.NET in VS2005, .Net 2.0

Thanks.
David
0
megnin
Asked:
megnin
1 Solution
 
Babycorn-StarfishCommented:
Hi, assuming you are using BindingSource objects to link the controls to the dataset you can capture CurrentChanged event, once this fires you can use code of this form

String key = ((DataRowView)(FirstBindingSource.Current))["KeyColumn"].ToString();
SecondBindingSource.Position = SecondBindingSource.Find("SecondKeyColumn", key);

this way when the position changes in the first binding source it will select the equivalent row that has a column with the key in.
0
 
megninAuthor Commented:
Wonderful!  Exactly with I was looking for.

Thank you very much!

David
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now