Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Ефрейтор
 Аватар для prog13
186 / 157 / 6
Регистрация: 20.07.2009
Сообщений: 226

Заполнение DataGridView при выделении строки другого Grid-а

20.10.2011, 10:52. Показов 2970. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Главный грид - GridViewRecipe (список рецептов)
Дополнительный грид - GridViewIng (список ингредиентов рецепта выделенного в главном гриде)

Главный грид заполняется с помощью встроенных инструментов BindingSourse.
Дополнительный грид заполняется вот такой подпрограммой:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub FillIngr()
Try
Dim comand As New SqlCeCommand("SELECT ing_id, ing_name as [Наименование], ing_kol as [Кол-во], od_name as [Ед.изм.] FROM ingr INNER JOIN recipe ON ing_rec=rec_id INNER JOIN odvm ON ing_odv=od_id WHERE ing_rec = " & GridViewRecipe.CurrentRow.Cells(0).Value, db)
Dim adapter As New SqlCeDataAdapter(comand)
Dim dataset As New DataSet
adapter.Fill(dataset, "ingrid")
With GridViewIng
           .DataSource = dataset
           .DataMember = "ingrid"
End With
GridViewIng.Columns(0).Visible = False
GridViewIng.DefaultCellStyle.ForeColor = Color.Blue
Catch FillIngrErr As Exception
MsgBox(FillIngrErr.Message, , "Ошибка чтения ингредиентов")        
End Try
End Sub
Эту подрограмму вставляю в событие смены ячейки главного грида

VB.NET
1
2
3
4
Private Sub GridViewRecipe_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles GridViewRecipe.CellEnter
FillIngr()
GroupBox3.Text = " Состав рецепта " & GridViewRecipe.CurrentRow.Cells(1).Value
End Sub
Проблема возникает только при загрузки формы.
Вот такое сообщение вылетает

После клика на "ОК" форма загружается дальше и в процессе работы программы все отображается без проблем.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.10.2011, 10:52
Ответы с готовыми решениями:

Заполнение ячеек при выделении строки
И так и сяк писал никак не могу разобраться с присвоением активной строке значения. Sub zapolnenieDateAndNumberDoca() Dim list As...

Ошибка при выделении ячейки DataGridView
Прикрепил небольшой проект, там после добавлении данных в DataGridView, при выделении любой ячейки, падает программа с ошибкой - для...

DataGridView: при выделении ячейки выделять строку
Как сделать что при клике в любую ячейку выделялалась вся строка?

3
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
20.10.2011, 13:50
Цитата Сообщение от prog13 Посмотреть сообщение
Эту подрограмму вставляю в событие смены ячейки главного грида
только туда?
А в событии загрузки формы она не вызывается? Возможно, ноги растут из процедуры заполнения главного грида, точнее несогласованности заполнения главного и дополнительного гридов.
0
Ефрейтор
 Аватар для prog13
186 / 157 / 6
Регистрация: 20.07.2009
Сообщений: 226
20.10.2011, 14:03  [ТС]
в событии загрузки формы студия вставила свой код загрузки главного грида
VB.NET
1
2
3
4
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'RecipeDBDataSet.ListRecipe' table. You can move, or remove it, as needed.
Me.ListRecipeTableAdapter.Fill(Me.RecipeDBDataSet.ListRecipe)
End Sub
Добавлено через 8 минут
Цитата Сообщение от Юпатов Дмитрий Посмотреть сообщение
точнее несогласованности заполнения главного и дополнительного гридов.
но после того как форма полностью загрузилась всё отображается нормально
0
 Аватар для Юпатов Дмитрий
1721 / 1208 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
20.10.2011, 16:31
Цитата Сообщение от prog13 Посмотреть сообщение
GridViewRecipe_CellEnter
Цитата Сообщение от MSDN
Происходит, когда текущая ячейка изменяется в элементе управления DataGridView или когда этот элемент управления получает фокус ввода.
Думаю, при загрузке формы грид (главный) получает фокус до того, как в нем появились данные какие-либо. Возможно, даже ранее получения в переменную db (я так понимаю, это строка подключения к БД).
Вместо этого события попробуй использовать событие SelectionChanged которое
Цитата Сообщение от MSDN
Возникает при изменении текущего выделения
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2011, 16:31
Помогаю со студенческими работами здесь

Excel. Заполнение одним текстом и цветом ячейки при ее выделении
Здравствуйте, все) Подскажите реально ли такое сделать? 1. Заполнение одним текстом и цветом ячейки при ее выделении. 2. Заполнение...

Показ Listbox при выделении ячейки, а не строки
Добрый день. Подскажите пожалуйста. Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Shp As Object If Not...

Ошибка: "Индексу -1 не присвоено значение" при выделении ячейки DataGridView
Доброго времени суток! Пишу приложение для работы с БД MySQL. На форму поместил компонент dataGridView1. Создал запрос к БД....

При выделении ячейки в DataGridView контрол перемещается и становится по правую сторону ячейки
Всем доброе утро. В приложении есть DataGridView и контрол со всеми функциями по управлению данными в DataGridView. При выделении ячейки...

При выделении строки в ListBox (загружено из БД) вылетает ошибка
Такая проблема, вывожу данные с базы в listbox и при выделении какой-либо записи вывести всю инфу на label. Вылетает ошибка:There is no row...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru