Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/47: Рейтинг темы: голосов - 47, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 15

Заполнение datagridview на форме 1 из формы 2

27.01.2014, 00:11. Показов 10311. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется форма 1 на ней datagridview и кнопка которая вызывает форму 2.
Как зделать так чтобы выполненые расчеты на форме 2 из textbox занеслись в datagridview.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.01.2014, 00:11
Ответы с готовыми решениями:

Заполнение DataGridView из другой формы
Доброго времени суток, только начал писать прогу и тут же столкнулся с проблемкой... Есть 2 формы. На первой форме DataGridView. При...

Заполнение DatagridView из другой формы с BindingSource
Никак не могу понять, почему не работает вот этот код: vakans v = new vakans(); Form1 f = new Form1(); ...

Передать данные из dataGridView на 1 форме в dataGridView на 2 форме
Help me! Есть два dataGridview, первый привязан к бд access и лежит на первой форме, второй нет и лежит на второй форме. пытаюсь из...

14
Си-решеточник
 Аватар для Rameron
141 / 135 / 60
Регистрация: 07.02.2011
Сообщений: 669
27.01.2014, 15:26
Форма 2 создается динамически во время выполнения программы или уже сделана в графическом редакторе VS?
В общем, лучшим выходом в данной ситуации, как по мне, является передача форме 2 через конструктор ссылки на форму 1, при этом в форме 1 datagridview должен быть глобально доступен.
0
0 / 0 / 0
Регистрация: 04.05.2013
Сообщений: 15
27.01.2014, 23:21  [ТС]
А по подробнее можно?
0
Си-решеточник
 Аватар для Rameron
141 / 135 / 60
Регистрация: 07.02.2011
Сообщений: 669
28.01.2014, 00:03
Цитата Сообщение от Vicjan Посмотреть сообщение
А по подробнее можно?
Кликните здесь для просмотра всего текста
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace GridExample
{
    public partial class Form1 : Form
    {
        public DataGridView dataGridView1;
        public Form1()
        {
            InitializeComponent();
            initData();
        }
        private void initData()
        {
            String[] columns = { "Артикул", "Название", "Цена", "Количество" };
            dataGridView1.ColumnCount = columns.Length;
            for (int i = 0; i < columns.Length; i++)
            {
                dataGridView1.Columns[i].Name = columns[i];
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            new Form2(this).Show();
        }
    }
 
    class Form2 : Form
    {
        Form1 formLink;
        TextBox textCode;
        TextBox textName;
        TextBox textPrice;
        TextBox textCount;
 
        public Form2(Form1 formLink)
        {
            this.formLink = formLink;
            initInterface();
        }
 
        private void initInterface()
        {
            this.Text = "Форма 2";
 
            Label labelTest = new Label();
            labelTest.Text = "Артикул:";
            labelTest.Location = new Point(10, 10);
            labelTest.Size = new Size(80, 20);
            this.Controls.Add(labelTest);
 
            textCode = new TextBox();
            textCode.Location = new Point(110, 10);
            textCode.Size = new Size(80, 20);
            this.Controls.Add(textCode);
 
            labelTest = new Label();
            labelTest.Text = "Название:";
            labelTest.Location = new Point(10, 40);
            labelTest.Size = new Size(80, 20);
            this.Controls.Add(labelTest);
 
            textName = new TextBox();
            textName.Location = new Point(110, 40);
            textName.Size = new Size(80, 20);
            this.Controls.Add(textName);
 
            labelTest = new Label();
            labelTest.Text = "Цена:";
            labelTest.Location = new Point(10, 70);
            labelTest.Size = new Size(80, 20);
            this.Controls.Add(labelTest);
 
            textPrice = new TextBox();
            textPrice.Location = new Point(110, 70);
            textPrice.Size = new Size(80, 20);
            this.Controls.Add(textPrice);
 
            labelTest = new Label();
            labelTest.Text = "Количество:";
            labelTest.Location = new Point(10, 100);
            labelTest.Size = new Size(80, 20);
            this.Controls.Add(labelTest);
 
            textCount = new TextBox();
            textCount.Location = new Point(110, 100);
            textCount.Size = new Size(80, 20);
            this.Controls.Add(textCount);
 
            Button buttonAdd = new Button();
            buttonAdd.Location = new Point(10, 130);
            buttonAdd.Size = new Size(160, 20);
            buttonAdd.Text = "Добавить";
            buttonAdd.Click += buttonAdd_Click;
            this.Controls.Add(buttonAdd);
        }
 
        void buttonAdd_Click(object sender, EventArgs e)
        {
            String[] strDataRow = { textCode.Text, textName.Text, textPrice.Text, textCount.Text };
 
            formLink.dataGridView1.Rows.Add(strDataRow);
        }
 
    }
}
0
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 17
02.02.2014, 17:33
C#
1
2
3
4
5
6
        void buttonAdd_Click(object sender, EventArgs e)
        {
            String[] strDataRow = { textCode.Text, textName.Text, textPrice.Text, textCount.Text };
 
            formLink.dataGridView1.Rows.Add(strDataRow);
        }
Ошибка 1 "testDB.Form1.dataGridView1" недоступен из-за его уровня защиты ...\мои документы\visual studio 2010\Projects\testDB\testDB\Form1.cs 110 22 testDB

что не так с этой строчкой?
C#
1
formLink.dataGridView1.Rows.Add(strDataRow);
0
Си-решеточник
 Аватар для Rameron
141 / 135 / 60
Регистрация: 07.02.2011
Сообщений: 669
02.02.2014, 18:44
Цитата Сообщение от harusame Посмотреть сообщение
Ошибка 1 "testDB.Form1.dataGridView1" недоступен из-за его уровня защиты ...\мои документы\visual studio 2010\Projects\testDB\testDB\Form1.cs 110 22 testDB
Вы откройте Form1.Designer и там посмотрите на права доступа dataGridView1 (в конце файла). По умолчанию у всех добавляемых элементов устанавливается уровень доступа private, поменяйте его на public.
2
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 17
02.02.2014, 18:57
Цитата Сообщение от Rameron Посмотреть сообщение
Вы откройте Form1.Designer и там посмотрите на права доступа dataGridView1 (в конце файла). По умолчанию у всех добавляемых элементов устанавливается уровень доступа private, поменяйте его на public.
спасибо за подсказку, все заработало )

А как сделать так чтоб все вводимые данные хранились например в Database.mdb и при открытии автоматом все данные из файла загружались в программу.

Еще хотел узнать как сделать защиту от перезаписи путем ввода пароля и логина во всплывающем окне?
0
Си-решеточник
 Аватар для Rameron
141 / 135 / 60
Регистрация: 07.02.2011
Сообщений: 669
02.02.2014, 19:01
Цитата Сообщение от harusame Посмотреть сообщение
А как сделать так чтоб все вводимые данные хранились например в Database.mdb и при открытии автоматом все данные из файла загружались в программу.
А погуглить?
http://stackoverflow.com/quest... -grid-view
Цитата Сообщение от harusame Посмотреть сообщение
Еще хотел узнать как сделать защиту от перезаписи путем ввода пароля и логина во всплывающем окне?
При попытке изменить ячейку в DataGrid, вызывать функцию, которая и будет запрашивать пароль с логином.
0
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 17
02.02.2014, 19:41
Цитата Сообщение от Rameron Посмотреть сообщение
А погуглить?
http://stackoverflow.com/quest... -grid-view

При попытке изменить ячейку в DataGrid, вызывать функцию, которая и будет запрашивать пароль с логином.
Гуглил но не находил ничего. По ссылке перешел, посмотрел, ничего не понял куда вставлять и что с тем нужно делать.

как сделать чтоб вызвать ту самую функцию?
0
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 17
04.02.2014, 15:46
из-за чего такая ошибка появляется?
Миниатюры
Заполнение datagridview на форме 1 из формы 2  
0
Си-решеточник
 Аватар для Rameron
141 / 135 / 60
Регистрация: 07.02.2011
Сообщений: 669
04.02.2014, 16:10
Цитата Сообщение от harusame Посмотреть сообщение
из-за чего такая ошибка появляется?
Написано же:
Microsoft Data Access Components (MDAC) 2.8 SP1
0
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 17
05.02.2014, 10:26
Цитата Сообщение от Rameron Посмотреть сообщение
так он у меня вроде установлен.
0
1 / 1 / 0
Регистрация: 24.10.2012
Сообщений: 17
05.02.2014, 10:29
вот что выдала программа установки.
Миниатюры
Заполнение datagridview на форме 1 из формы 2  
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
05.02.2014, 13:34
Vicjan, по ссылке ниже обсуждалась эта проблема. Там под работу с базой данных идея затачивалась, но суть думаю будет понятна. Из формы1 создается форма2 и подписка на событие, например форма2_расчет выполнен, и в коде формы1 пишешь обработчик этого события.

Пример
0
1 / 1 / 1
Регистрация: 09.10.2013
Сообщений: 44
06.02.2014, 20:46
Недавно разбирался сам с эти думаю это самое простое и оптимальное решение:
код для первой формы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//открытие второй формы
private void button3_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            f.Owner=this;
            
            f.Show();
            
        }
//передаем  во вторую форму
        public void insert_procurement(string []tbv)
        {
//Можно заменить на datagtidview.Row.Add(int.Parse(tbv[0]), tbv[1], int.Parse(tbv[2]), int.Parse(tbv[3]));
//Или же так для БД
            procurementTableAdapter.Insert(int.Parse(tbv[0]), tbv[1], int.Parse(tbv[2]), int.Parse(tbv[3]));
            procurementTableAdapter.Update(testBaseDataSet);
            procurementTableAdapter.Fill(this.testBaseDataSet.procurement);
        }

Код для второй формы
C#
1
2
3
4
5
6
7
8
9
10
//кнопка ок на второй форме
private void button1_Click(object sender, EventArgs e)
        {
            Form1 f1 = (Form1)this.Owner;
            string[] tbv = { textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text };
            f1.insert_procurement(tbv);
            f1.Show();
            this.Close();
            
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2014, 20:46
Помогаю со студенческими работами здесь

Заполнение TextBox на дочерней форме из DataGridView на родительской
динамически создается БД(SQLite), динамически создается dataGridView. во время работы программы из dataGridView надо заполнить несколько...

Заполнение DataGridView из другой формы
Всем добрый день. Возможно тема заезжена, но я не нашёл инфы. Вкратце - есть две формы, на одной распологается DataGridView и кнопка...

Заполнение подчиненной формы, используя поле со списком в главной форме.
Автоматизирую подстановку активных абонементов в программе учета фитнес-клуба: ТАБЛИЦЫ: Абонемент (ID абонемент, Дата начала,...

Заполнение полей подчиненной формы по полю с выпадающим списком в главной форме
Здравствуйте! Помогите разобраться с заполнение полей подчиненной формы по полю с выпадающим списком в главной форме. После обновления...

Как перенести все данные из DataGridVIew в другую DataGridView, которая находится во второй форме
Как перенести все данные из DataGridVIew в другую DataGridView, которая находится во второй форме?


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
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