Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/88: Рейтинг темы: голосов - 88, средняя оценка - 4.84
7 / 7 / 3
Регистрация: 25.11.2010
Сообщений: 93

Доступ к данным Datagridview из другой формы

19.01.2011, 11:38. Показов 16267. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Новичок.
Усердно читал 7 часто задаваемых вопросов на форуме,
Но никак не могу понять, как получить доступ к данным,
находящимся в DataGridView другой формы.

До этого использовал класс,
который объявлял, как public static,
чтобы получть доступ к массивам и переменным.

Другие способы мне не понятны.
Может кто-нибудь сможет мне разжевать,
чтобы до меня дошло.

И еще, форма в которой я хочу использовать данные ,
не вызывается из формы с DataGridView.

Подскажите пожалуйста также как обратиться к нужной строке DataGridview по ее номеру.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.01.2011, 11:38
Ответы с готовыми решениями:

Доступ к DataGridView из другой формы
Добрый день:) Вобщем есть форма1 с datagridview, как можно обратиться(работать с ячейками) к ней через форму2? PS: пробывал в форме1...

доступ к данным другой программы
Доброго времени суток :) Есть некая программа с которой грубо говоря нужно взять данные, объясните как собственно говоря это...

Доступ к данным из SQL при клике по строке в DataGridView
Проект Windows Forms @ C# Имеется табличка (далее SQLTable) в базе данных SQL (SQL). Имеется DataGridView (DGV), к которой привязана...

12
7 / 7 / 0
Регистрация: 06.02.2010
Сообщений: 31
19.01.2011, 12:19
Цитата Сообщение от Bill Gates Посмотреть сообщение
Новичок.
Усердно читал 7 часто задаваемых вопросов на форуме,
Но никак не могу понять, как получить доступ к данным,
находящимся в DataGridView другой формы.

До этого использовал класс,
который объявлял, как public static,
чтобы получть доступ к массивам и переменным.

Другие способы мне не понятны.
Может кто-нибудь сможет мне разжевать,
чтобы до меня дошло.

И еще, форма в которой я хочу использовать данные ,
не вызывается из формы с DataGridView.

Подскажите пожалуйста также как обратиться к нужной строке DataGridview по ее номеру.
Сделать объект DataGridView как паблик. Ну и каким то образом (их несколько) передать ссылку (на форму или объект DataGridView) в нужную точку программы.
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
19.01.2011, 12:27
Цитата Сообщение от Bill Gates Посмотреть сообщение
И еще, форма в которой я хочу использовать данные ,
не вызывается из формы с DataGridView.
А каким образом она вызывается? С другой формы, при запуске, это другая программа?
0
7 / 7 / 3
Регистрация: 25.11.2010
Сообщений: 93
19.01.2011, 12:35  [ТС]
Цитата Сообщение от Slap Посмотреть сообщение
А каким образом она вызывается? С другой формы, при запуске, это другая программа?
Это одна и та же программа,
состоящая из почти десятка форм.
Она вызывается из одной из форм,
но не той, что содержит нужный DataGridview.


Цитата Сообщение от Kraft Посмотреть сообщение
Сделать объект DataGridView как паблик. Ну и каким то образом (их несколько) передать ссылку (на форму или объект DataGridView) в нужную точку программы.
Можете привести пример?
0
7 / 7 / 0
Регистрация: 06.02.2010
Сообщений: 31
19.01.2011, 12:41
Цитата Сообщение от Bill Gates Посмотреть сообщение
Можете привести пример?
Ну самый простой вариант, это объявить статический класс, со статической ссылкой типа DataGridView. После того как прошла инициализация формы на которой торчит этот DataGridView, "зассылить" объект DataGridView в статическое поле вышеупомянутого статического класса.

Как то так.
1
36 / 16 / 0
Регистрация: 29.01.2010
Сообщений: 252
19.01.2011, 12:48
Лучше напишите к каким конкретно параметрам вам надо получить доступ и что должно произойти!
0
7 / 7 / 3
Регистрация: 25.11.2010
Сообщений: 93
19.01.2011, 13:03  [ТС]
Цитата Сообщение от dontgiveafk Посмотреть сообщение
Лучше напишите к каким конкретно параметрам вам надо получить доступ и что должно произойти!
В первой форме
моя программа генерирует данные и заносит их в строки DataGridView,
расположенном на этой же форме.
Во второй форме я создал еще один DataGridView,
в который хочу занести
некоторые данные из первого DataGridView,
взятые оттуда в соответствии с некоторым критерием.
Но не знаю как получить к ним доступ.

В результате вычислений я нахожу номер нужной строки из первого DataGridView
и хочу эту строку записать во второй DataGridView.

Добавлено через 4 минуты
Цитата Сообщение от Kraft Посмотреть сообщение
Ну самый простой вариант, это объявить статический класс, со статической ссылкой типа DataGridView. После того как прошла инициализация формы на которой торчит этот DataGridView, "зассылить" объект DataGridView в статическое поле вышеупомянутого статического класса.
Как то так.
Благодарю за пояснение,
однако реализовать это без примера кода у меня не выходит.
Простите мою неопытность.
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
19.01.2011, 13:05
Bill Gates, ну вы и объясняете До последнего сообщения вообще не понимал, в чем сложность.
У вас по умолчанию есть Form1, на котором DataGrid. Там же происходит обработка информации. Form2 со вторым DataGrid вы же вызвать как то должны? В начале или уже в процессе работы программы - не важно. Вот и объявляете в Form1 при вызове:
C#
1
2
3
4
5
private void button1_Click(object sender, EventArgs e)
{
    Form2 f = new Form2();
    f.Show()
}
Повторюсь: это может быть и не нажатие кнопки, а еще при появлении формы или после какого-то события.
Затем на Form2 идем в свойства DataGrid и ставите там вместо private - public.
И затем уже с первой формы обращаетесь соответственно: f.DataGrid.(...)
2
7 / 7 / 3
Регистрация: 25.11.2010
Сообщений: 93
19.01.2011, 13:21  [ТС]
Slap, Все получилось.
Я все понял.
Ларчик просто открывался.
Спасибо.
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
19.01.2011, 13:36
Более-менее правильный вариант (на мой взгляд).
Код основной формы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Windows.Forms;
 
namespace WindowsFormsTest {
    public sealed partial class MainForm : Form {
        private readonly Action<string> _changeMyText;
 
        public MainForm() {
            InitializeComponent();
 
            // Подписываемся на событие при изменении текста в текстбоксе на этой форме
            textBox1.TextChanged += ( sender, args ) => {
                if ( _changeMyText != null ) {
                    // Вызываем функцию смены текста в текстбоксе дочерней формы
                    _changeMyText( textBox1.Text );
                }
            };
 
            // Дочерняя форма
            ChildForm childForm = new ChildForm();
 
            // Функция, меняющая текст в дочерней форме.
            _changeMyText = childForm.ChangeMyText;
 
            // Подписываемся на событие изменения текста в дочерней форме.
            childForm.MyTextChanged += text => textBox1.Text = text;
 
            // Показываем форму
            childForm.Show();
        }
    }
}
Код дочерней формы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Windows.Forms;
 
namespace WindowsFormsTest {
    public partial class ChildForm : Form {
        public ChildForm() {
            InitializeComponent();
 
            // Подписываемся на изменение текста в текстбоксе на этой форме
            textBox1.TextChanged += ( sender, args ) => {
                if ( MyTextChanged != null ) {
                    // Вызываем событие изменения текста в текстбоксе
                    MyTextChanged( textBox1.Text );
                }
            };
        }
 
        // Событие изменения текста в текстбоксе этой формы
        public Action<string> MyTextChanged { get; set; }
 
        // Функция изменения текста в текстбоксе этой формы
        public void ChangeMyText( string text ) {
            textBox1.Text = text;
        }
    }
}
Для примера синхронизируется текст в текстбоксах на обоих формах.
1
0 / 0 / 0
Регистрация: 22.03.2017
Сообщений: 95
28.05.2017, 19:18
можно ли последний пост(пример с textbox) на datagridview переделать?
0
 Аватар для Beretnash
6 / 6 / 5
Регистрация: 14.07.2014
Сообщений: 24
29.05.2017, 01:23
Автор, есть "костыль" который тебе поможет
1. Создаешь класс Global, в нем статичный публичный datagridview
2. В загрузку формы суешь приравнивание datagridview с Global к твоему
3. Используешь в своих махинациях datagridview с Global, и нужный тебе будет изменяться

P.S. Сорян, сверху уже такое предлагали, но как по мне - лучший вариант
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
29.05.2017, 04:14
Цитата Сообщение от Bill Gates Посмотреть сообщение
Доступ к данным Datagridview из другой формы
Имхо, заведомо неверная формулировка вопроса! Не к Datagridview нужно получать доступ, а к DataTable (или что там в DataSource у него), из которой берет данные этот грид!!! Не нужно оперировать контролами!!! По крайней мере, если этого можно избежать!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2017, 04:14
Помогаю со студенческими работами здесь

Доступ к данным, которые находятся в другой форме
Здравствуйте, мне нужно создать Генератор выражений. В одной форме я непосредственно генерирую выражение, а в другой должна быть...

Передача данных с DataGridView одной формы в TextBox другой формы
Ребята, мне необходимо передать значения с выбранной строки Datagridview в textboxы второй формы, но есть одно но! Нужно чтобы доступ был...

Передача данных из одной формы в таблицу dataGridView другой формы
Есть две формы на одной таблица на второй поля в которые пользователь вводит значения. Не получает со второй формы добавить больше одного...

Доступ к полям одной формы из другой формы
Программа состоит из двух windows form. В первой форме формируется структура массивов с данными. Во второй форме необходимо использовать...

Доступ из другой формы
мне нужно осуществить поиск из другой формы в datagridviev к которой подключена бд. Как осуществить поиск я знаю,но как получить к...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru