VB.NET создает (например, MS ACCESS) связанные формы

NET (базовый) У меня есть на form1 DGV1, отображающий имена клиентов (набор данных из базы данных SQL). Я хочу дважды щелкнуть имя клиента «a» в DGV1, form1, а затем просмотреть «Сведения о клиенте» в DGV2, form2.

Я могу сделать это в одной форме, легко DGV1 и DGV2, когда выберите имя клиента в верхнем DGV, а нижний DGV соответственно обновится. Я хочу это на двух формах, как описано выше.

Спасибо, Мишель


person Michelle VonLind    schedule 11.11.2016    source источник
comment
Вы спрашиваете, как открыть новую форму, когда вы щелкаете строку в сетке?   -  person Steve    schedule 11.11.2016
comment
Привет, Стив. Нет, я могу открыть новую форму, нажав DGV. Если я нажму на строку в сетке, например. имя клиента Джон, затем я хочу, чтобы форма 2 открывалась И отображала данные для ДЖОНА в DGV2. Например, возраст, пол, телефон. Таким образом, я могу сделать DGV, но в данный момент показать ВСЕ детали ВСЕХ клиентов. Поскольку я выбираю ДЖОН в форме 1, я только хочу увидеть детали Джона в form2..   -  person Michelle VonLind    schedule 11.11.2016
comment
Ваша вторая форма должна получить подробную информацию о нажатой строке клиента. Как вы это сделаете, зависит от того, как вы инициализировали свою первую сетку. (Используете ли вы список клиентов или просто привязали сетку к таблице данных (и в этом случае вы получили первичный ключ этой таблицы)?   -  person Steve    schedule 11.11.2016
comment
Стив, я использую VB.NET 2012. Я создаю CustomerDataset и помещаю datagridview в форму. Затем автоматически создает tableAdapter, bindingsource. Теперь я помещаю информацию о клиенте в форму, а также создаю tableAdapter, источник привязки. (все это в одной форме), если я нажму имя клиента на DGV1, тогда DGV2 покажет подробности для этого клиента. Все это работает нормально. Но теперь........ Я хочу переместить DGV2 в form2. Затем, если дважды щелкнуть имя клиента в DGV1, форма 1 .... затем форма 2 должна открыться и показать сведения об этом покупателе.   -  person Michelle VonLind    schedule 11.11.2016


Ответы (1)


Попробуйте этот, я думаю, это тот, который вы ищете,

'This code below will hold the Value from your table 
Dim CustomerName as String
'This code below will hold the value of the selected row in DGV1
Dim SelectedName As Integer
SelectedName = DataGridView1.CurrentRow.Index

Теперь вот что вы делаете, скажем, имя клиента находится в Column1, теперь мы получим это значение следующим образом.

CustomerName = DataGridView.Item(1, i).Value

Итак, что происходит каждый раз, когда вы выбираете данные в столбце 1, значение этой выбранной строки переходит в CustomerName.

Следующее, что вам нужно сделать, это создать Form2, добавить Datagridview и запустить его в своем коде.

Form2.Show
'Create your own way of display data in datagridview but this time your where clause is like this (where ColumName = '" & CustomerName  & "')

С уважением

person Shadow Fiend    schedule 11.11.2016
comment
Привет, Павел, большое спасибо за ответ. Я так понимаю первую часть - это определить какое значение клика.. Чтобы получить значение. Итак, теперь это значение должно быть передано в form2. Извините, пожалуйста, у меня плохой английский, а также я не очень разбираюсь в программировании... - person Michelle VonLind; 11.11.2016
comment
Затем в форме2.... это значение должно использоваться для какой-либо функции фильтра? Я не понимаю форму2, как фильтровать только сейчас.. Скажем, я копирую CustomerID в форму1.. теперь я хочу отфильтровать это в форме2. Скажем, customerID 5, теперь я должен отфильтровать form2 DGV2 для 5, поэтому... я не понимаю раздел form2 - person Michelle VonLind; 11.11.2016