Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Выбор строки в DataGridView: открыть форму с информацией по данному товару  (Прочитано 17292 раз)
0 Пользователей и 1 Гость смотрят эту тему.
lionforever
Интересующийся

ru
Offline Offline

« : 18-03-2012 08:43 » 

Здравствуйте уважаемые форумчане!
столкнулся с таким вопросом...
к примеру у меня есть DataGridView, в нем таблица из сформированного dataset, есть еще один dataset в другом DataGridView. Нужно сделать что бы при нажатии на одной из записи в первом DataGridView - открывалась новая форма с другим DataGridView...к примеру, что бы при нажатии на записи "мягкие кресла" открывалась новая форма с мягкими креслами, их данными, при нажатии на записи "кровати" открывалась новая форма с записями о кроватях (все данные берем из БД)
Как это можно реализовать?
С уважением
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 18-03-2012 10:34 » 

lionforever, новое окно или "древовидная" таблица (после нажатия (+) около строчки снизу под строкой выпадает ещё одна таблица - детализация)?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
lionforever
Интересующийся

ru
Offline Offline

« Ответ #2 : 18-03-2012 10:42 » 

Новое окно...именно новое окно (новая форма)
Записан
гайка
Гость
« Ответ #3 : 18-03-2012 10:49 » 

Ну например, так: у тебя есть 2 формы, в каждой форме по своему DataGridView ( далее dgv), о существовании друг друга они не знают и знать не хотят. По двойному нажатию на запись в первом dgv запускается событие CellDoubleClick, в нем ты создаешь новый экземпляр второй формы, а в качестве параметра передаешь переменную, указывающую какой именно товар должен показываться в твоем втором dgv.
ну а во второй форме при загрузке формы формируешь DataSet, в зависимости от того, какой товар передан.
Только ты уверен, что в первой форме тебе нужен именно dgv? может хватит и обычного списка товаров в ListVew?
Записан
lionforever
Интересующийся

ru
Offline Offline

« Ответ #4 : 18-03-2012 11:01 » 

благодарю, Гайка...ну суть в том что данные мои (первый Дата грид вью) берутся из базы данных заранее подключенных...насколько я знаю листвью не позволит такое осуществить (показать таблицу с выборочными данными из базы данных)
"в нем ты создаешь новый экземпляр второй формы" а это как?
прошу прощения, наверное туплю...программированию только недавно начал учиться...
Записан
гайка
Гость
« Ответ #5 : 18-03-2012 11:11 » 

lionforever, Лист вью покажет всё то, что ты ему скажешь показать. у тебя в базе есть по-любому таблица вроде Товар.
Лист вью (или даже Лист Бокс) точно так же может считывать данные из базы. Можно прописать это ручками, а можно просто нажать на маленький треугольничек в верхнем правом углу контрола - это привязка данных из базы. в качества источника выбери нужную таблицу, а нужный столбец (наименование товара) как "отобразить член" (вроде бы так это поле называется). сто процентов сказать не могу, но по-моему так осуществляется привязка самым простым, визуальным способом.
Записан
lionforever
Интересующийся

ru
Offline Offline

« Ответ #6 : 18-03-2012 12:06 » new

в том то и дело..лист вью отобразит только один столбец из бд...а нужна то полная информация....по-этому и датаГридВью...что он позволяет отобразить сразу несколько столбцов...
Записан
гайка
Гость
« Ответ #7 : 18-03-2012 12:21 » 

lionforever, а зачем тебе несколько столбцов? тебе же просто товар надо выбрать. достаточного будет и одного столбца. или тебе еще что-то нужно делать?

Добавлено через 1 минуту и 21 секунду:
lionforever, да и кстати... это лист бокс отображает один столбец, а не лист Вью. у этого может быть и несколько
« Последнее редактирование: 18-03-2012 12:22 от гайка » Записан
lionforever
Интересующийся

ru
Offline Offline

« Ответ #8 : 18-03-2012 12:41 » 

хм, а и правда...вбить в первую форму список всех товаров, и осуществлять переход по наименованию товара, где в новой форме уже прицепить датагридвью с полной информацией о товаре...можно ведь так? Кликаем дважды по нужному товару и переходим к полной информации...но сам переход - как его сделать? (если можно на примере? )
Записан
гайка
Гость
« Ответ #9 : 19-03-2012 10:52 » 

lionforever, на примере показать не смогу, т.к. у меня нет на моей машинке установленных СУБД.
Могу только примерно объяснить:
тебе нужно, чтоб каждый раз, когда у тебя меняется значение выделенного товара (событие SelectedIndexChanged), его код (первичный ключ товара из этой же таблицы в твоей базе данных) куда-нибудь записывался. Например в ListBox1.Tag (Tag - это свойство, которое есть у каждого контрола, ), ну или просто в какую-нибудь переменную, не важно. А при двойном щелчке по товару (событие DoubleClick) создается экземплар второй формы и в качестве параметра, передается этой форме та самая переменная
Код: (C#)
Form2 f2=new Form2(<имя той самой переменной>)
f2.Show();
Код: (C#)
public partial class Form2 : Form
{
        int id;
        public Form2(int index)
        {
            InitializeComponent();
            id=index;
        }
}
теперь твоя форма знает, какой товар ей нужно показать.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines