Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 25.01.2010
Сообщений: 73

Работа с DataGridView из другой формы

10.06.2011, 22:11. Показов 1873. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Работаю над курсачом, всё уже почти сделал осталось только чтобы можно было произвести операцию вычитания из таблицы
есть первая форма в которой в DataGridView загружается файл data.txt и полям таблица присваиваются значения создав класс User:
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
namespace Reg
{
    public class User
    {
        public string login;
        public string pass;
        public int balans;
        public string username;
 
        public User(string login, string pass, int balans, string username)
        {
            this.login = login;
            this.pass = pass;
            this.balans = balans;
            this.username = username;
        }
    }
 
    public class Users // Класс, который хранит регистрационные данные.
    {
        public List<string> Logins = new List<string>(); // логин
        public List<string> Passwords = new List<string>(); // Пароль.
    }
}
далее на первой форме мы создаём функцию проверки номера карты и пин кода если верно то оно переходит на другую форму
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
namespace Reg
{
    public partial class RegistrationForm : Form
    {
        /* Переменные, которые будут хранить на протяжение работы программы логин и пароль. */
        public string login = string.Empty;
        public string password = string.Empty;
        private Users user = new Users(); // Экземпляр класса пользователей.
 
        public RegistrationForm()
        {
            InitializeComponent();
            view();
 
        }
 
        public void ogogo()
        {
            for (int j = 0; j < dataGridView1.RowCount; j++)
            {
                ElForm a = new ElForm();
                a = new ElForm(
                           new User(dataGridView1.Rows[j].Cells[0].Value.ToString(),
                                    dataGridView1.Rows[j].Cells[1].Value.ToString(),
                                    Convert.ToInt32(dataGridView1.Rows[j].Cells[2].Value),
                                    dataGridView1.Rows[j].Cells[3].Value.ToString()
                           ));
            }
        }
 
        public void searchInDataGridView()
        {
            RegForm r = null;
            
            for (int j = 0; j < dataGridView1.RowCount; j++)
            {
                if (
                    dataGridView1.Rows[j].Cells[0].Value.ToString().CompareTo(loginTextBox.Text) == 0 &&
                    dataGridView1.Rows[j].Cells[1].Value.ToString().CompareTo(passwordTextBox.Text) == 0
                    )
                {
                    r = new RegForm(
                        new User(dataGridView1.Rows[j].Cells[0].Value.ToString(),
                                 dataGridView1.Rows[j].Cells[1].Value.ToString(),
                                 Convert.ToInt32(dataGridView1.Rows[j].Cells[2].Value),
                                 dataGridView1.Rows[j].Cells[3].Value.ToString()
                        ));
 
 
                    
                    break;
                }
                
            }
            
 
            if (r != null) r.Show();
            
        }
 
        public void view()
        {
 
            dataGridView1.Rows.Clear();
            StreamReader sr = new StreamReader("data.txt");
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                string[] elements = line.Split(new char[1] { '\t' });
                dataGridView1.Rows.Add(elements);
            }
            sr.Close();
        }
 
        
      
 
        private void exitButton_Click(object sender, EventArgs e)
        {
            Application.Exit(); // Закрываем программу.
        }
 
 
 
        private void enterButton_Click(object sender, EventArgs e)
        {
            searchInDataGridView();
            
        }
 
        private void RegistrationForm_FormClosed(object sender, FormClosedEventArgs e)
        {
            if (login == "" | password == "") { Application.Exit(); }
        }
 
        public string i { get; set; }
    }
}
во второй форме:
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
namespace Reg
{
    public partial class RegForm : Form
    {
        
        public RegForm()
        {
            InitializeComponent();
            
        }
 
        User user;
 
        public RegForm(User user)
            : this()
        {
            this.user = user;
            
            nameLabel.Text = "Здравствуйте, " + user.username + "!";
            balansLabel.Text = "Ваш баланс составляет," + user.balans +  "рублей";
            /*
             user.username имя
             user.login    логин
             user.pass     пароль
             user.balans   ну и баланс его
             */
        }
        
       
        uslugi a = new uslugi();
        private void button2_Click_1(object sender, EventArgs e)
        {
 
            
            this.Hide();
            a.ShowDialog();
            this.Show();
        }
    }
}
информация появляется(user.username и user.balans) в зависимости от того какую ввели связку номер карты +пин код

далее мне надо сделать чтобы на форме можно было сделать арифметическую операцию, я предположил что можно написать функцию на первой форме
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 public void ogogo()
        {
            for (int j = 0; j < dataGridView1.RowCount; j++)
            {
                ElForm a = new ElForm();
                a = new ElForm(
                           new User(dataGridView1.Rows[j].Cells[0].Value.ToString(),
                                    dataGridView1.Rows[j].Cells[1].Value.ToString(),
                                    Convert.ToInt32(dataGridView1.Rows[j].Cells[2].Value),
                                    dataGridView1.Rows[j].Cells[3].Value.ToString()
                           ));
            }
        }
и вызвать её в той форме где мне надо сделать вычитание
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
namespace Reg
{
    public partial class ElForm : Form
    {
        TextBox textBox;
        RegistrationForm k = new RegistrationForm();
        
        public ElForm()
        {
            textBox = new TextBox();
            textBox.TextChanged += new EventHandler(textBox2_TextChanged);
            InitializeComponent();
            
            
        }
 
 
 
 
        User user;
        int r;
        public  ElForm(User user)
            :this()
        {
            this.user = user;
            k.ogogo();                             //не уверен что правильно вызвал функцию
            label4.Text = "Пользователь" + user.username;
            r = user.balans - 100000;
             
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            MessageBox.Show("Ваш баланс составляет:" + r);
            
        }
 
       
 
        void textBox2_TextChanged(object sender, EventArgs e)
        {
            if (textBox2.Text != "")
            {
                textBox3.Text = (Convert.ToInt32(textBox2.Text) * 74.7).ToString();
            }
 
        }
исправьте меня пожалуйста в чём я не прав либо подскажите как мне сделать чтобы для вычитания бралась информация с самой первой формы в эту????
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2011, 22:11
Ответы с готовыми решениями:

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

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

Заполнение dataGridView одной формы данными из другой формы
Добрый день! Оооочень прошу помочь. Что то никак не могу разобраться. Есть основная форма Form1, в которой у меня идут все...

2
3 / 3 / 1
Регистрация: 25.01.2010
Сообщений: 73
10.06.2011, 22:27  [ТС]
для проверки номер карты: 1567 pin-код:1111
Вложения
Тип файла: rar курсовая - копия.rar (1.45 Мб, 34 просмотров)
0
3 / 3 / 1
Регистрация: 25.01.2010
Сообщений: 73
11.06.2011, 13:27  [ТС]
спасибо уже сделал, добавил по очерёдно в формы класс user
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.06.2011, 13:27
Помогаю со студенческими работами здесь

Сохранение БД с DataGridView другой формы
Всем доброго времени суток. Имеется главная форма. На ней DataGridView, в который выводится база sql. Кликом по любой записи в...

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

Обновить DatagridView из другой формы...
Заполняю DataGridView нажатием на кнопку таким образом: DBMediaCatalogDataSet.АудиозаписиDataTable dt = new...

Обновление dataGridView из другой формы
Имеется Form1 на которой размещена dgw1, забиваем в нее данные. Нажимаем кнопочку &quot;сохранить&quot; на форме -сохраняем данные в...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru