Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
1

Передать данные из одной формы в другую

12.03.2013, 09:01. Показов 4220. Ответов 25
Метки нет (Все метки)

Такая интересная ситуация, есть две формы и один класс
Код вот такой :
форма1, на ней только таблица dataGridView1
C#
1
2
3
4
5
6
7
 public Form1()
        {
            InitializeComponent();
            Class1 class1 = new Class1();
            class1.fd(dataGridView1);
           
        }
Класс, тут я провожу обработку

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class Class1
    {
        public Class1()
        {
 
        }
 
        public void fd( DataGridView dataGridView)
        {
            dataGridView.Rows.Add( );
            dataGridView[0,0].Value = 1;  
        }
    }
и вторая форма тут всего лишь одна кнопка

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        public void button1_Click(object sender, EventArgs e)
        {
            Class1 class1 = new Class1();
            class1.fd(???????); что сюда надо дописать, если я вообще правильно написал код
         }
    }
смысл моей программы, что бы нажав на кнопку, которая находиться на одной форме и добавила еще одну строку в таблице, добавление происходит в классе, и отобразилось на другой форме... как мне это сделать?

 Комментарий модератора 
Все дубли перемещены в эту тему
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2013, 09:01
Ответы с готовыми решениями:

Передать данные из одной формы в другую
Есть 2 формы, при запуске открывается 1 форма, на ней есть кнопка, по нажатию на эту кнопку из 2-й...

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

Передать данные с одной формы в другую
Есть две формы нужно чтоб при нажатии кнопки в другой форме изменилось название label1. Но в первой...

Передать данные из одной формы в другую
На первой форме есть treeView1, в котором описаны страны и города. Нужно передать выбраный город на...

25
639 / 575 / 169
Регистрация: 17.07.2012
Сообщений: 1,634
Записей в блоге: 1
12.03.2013, 09:16 2
Как я понимаю, вам нужно из второй формы добавить строку в dataGridView1 первой формы? Передавайте dataGridView1 в конструктор второй формы и добавляйте.
1
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 09:19  [ТС] 3
Цитата Сообщение от Cupko Посмотреть сообщение
Как я понимаю, вам нужно из второй формы добавить строку в dataGridView1 первой формы? Передавайте dataGridView1 в конструктор второй формы и добавляйте.
а можете показать как это?
0
639 / 575 / 169
Регистрация: 17.07.2012
Сообщений: 1,634
Записей в блоге: 1
12.03.2013, 09:21 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public partial class Form2 : Form
    {
        DataGridView _grid;
        public Form2(DataGridView grid)
        {
            InitializeComponent();
            _grid = grid;
        }
 
        public void button1_Click(object sender, EventArgs e)
        {
            Class1 class1 = new Class1();
            class1.fd(_grid); 
         }
    }
1
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 09:29  [ТС] 5
огромное спасибо!
0
6037 / 3445 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
12.03.2013, 09:38 6

Не по теме:

:facepalm: когда уже кто-нибудь воспользуется поиском?


Ответы на 7 самых частых вопросов по WinForms
1
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 09:39  [ТС] 7
а он еще сюда что то требует Application.Run(new Main1());? это у меня главная форма
0
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 12:53  [ТС] 8
У меня есть 2 формы ,1 класс
1 форма (она главная) на ней кнопка, 2 форма на ней datagridview
смысл такой, надо сделать так что бы при нажатие на кнопку добавлялась строка в таблице, но добавление происходила в классе
как мне это сделать?
0
49 / 49 / 12
Регистрация: 18.01.2013
Сообщений: 169
12.03.2013, 13:07 9
В вашем сообщении не хватает конкретики. В чем собственно проблема? (Если не знаете как заполнять грид, то почему бы просто не воспользоваться поиском? Заполнение грида много раз было подробно описано с примерами)
И желательно прикреплять ваш нерабочий исходный код.
0
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 13:15  [ТС] 10
C#
1
2
3
4
5
6
7
 public Form1()
        {
            InitializeComponent();
            Class1 class1 = new Class1();
            class1.fd(dataGridView1);
           
        }

Класс, тут я провожу обработку
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class Class1
    {
        public Class1()
        {
 
        }
 
        public void fd( DataGridView dataGridView)
        {
            dataGridView.Rows.Add( );
            dataGridView[0,0].Value = 1;  
        }
    }

и вторая форма тут всего лишь одна кнопка

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public partial class Form2 : Form
    {
        DataGridView _grid;
        public Form2(DataGridView grid)
        {
            InitializeComponent();
            _grid = grid;
        }
 
        public void button1_Click(object sender, EventArgs e)
        {
            Class1 class1 = new Class1();
            class1.fd(_grid); 
         }
    }
0
49 / 49 / 12
Регистрация: 18.01.2013
Сообщений: 169
12.03.2013, 13:29 11
Если принципиально нужно создавать колонки и строки программно, то можно попробовать так -
Код
            
            dataGridView1.Columns.Add(new DataGridViewColumn() {CellTemplate = new DataGridViewTextBoxCell()});
            dataGridView1.Rows.Add(new DataGridViewRow());
            dataGridView1[0, 0].Value = 1;
0
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 16:14  [ТС] 12
Цитата Сообщение от Slicker Посмотреть сообщение
Если принципиально нужно создавать колонки и строки программно, то можно попробовать так -
Код
            
            dataGridView1.Columns.Add(new DataGridViewColumn() {CellTemplate = new DataGridViewTextBoxCell()});
            dataGridView1.Rows.Add(new DataGridViewRow());
            dataGridView1[0, 0].Value = 1;
мне надо сделать именно как я указал в условиях
0
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 17:03  [ТС] 13
Есть 2 формы ,1 класс на Form1(она главная) на ней button1, На Form2 на ней datagridview
как сделать так что бы при нажатие на кнопку добавлялась строка в таблице, но добавление происходила в классе
как мне это сделать?я попытался сделать но у меня не получается, почему при загрузки он стразу выполняет действия в классе?
Form1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public partial class Form1 : Form
    {
    
        public Form1()
        {
            InitializeComponent();
            Form2 f2 = new Form2();
            f2.Show();
 
            
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Class1 c1 = new Class1();   
        }
    }
Form2:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
            Class1 class1 = new Class1();
            class1.fd(dataGridView1);
        }
    }
Class1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Class1
    {
        
        public  Class1()
        {
            
        }
 
        public void fd(DataGridView grid)
        {
            grid.Rows.Add();
            
        }
    }
0
605 / 580 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
12.03.2013, 17:23 14
PuLbKa, твой код рабочий, проверил. Хотя когда читал его было подозрение что ты пишешь его исключительно для того чтобы выстрелить себе в ногу.
0
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 17:47  [ТС] 15
Spectral-Owl, он не работает как я хочу, я просто наугад писал
0
141 / 142 / 64
Регистрация: 11.11.2010
Сообщений: 864
Записей в блоге: 10
12.03.2013, 19:43 16
Странное проектирование. Вы уверены, что Вам нужно именно так?
Цитата Сообщение от PuLbKa Посмотреть сообщение
Class1 c1 = new Class1();
вызов из двух мест. Так и планировалось?
Цитата Сообщение от PuLbKa Посмотреть сообщение
private void button1_Click(object sender, EventArgs e)
{
Class1 c1 = new Class1();
}
отсюда, т.е. по клику на кнопку строка добавляться не будет, потому что не вызван метод
C#
1
Class1.fd(DataGridView grid)
0
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 20:08  [ТС] 17
Цитата Сообщение от GoldenId Посмотреть сообщение
Странное проектирование. Вы уверены, что Вам нужно именно так?

вызов из двух мест. Так и планировалось?

отсюда, т.е. по клику на кнопку строка добавляться не будет, потому что не вызван метод
C#
1
Class1.fd(DataGridView grid)
я только учусь и пишу все наугад методом тыка =) задача выше описана
0
141 / 142 / 64
Регистрация: 11.11.2010
Сообщений: 864
Записей в блоге: 10
12.03.2013, 23:19 18
Если уж на то пошло для того, что Вы сказали.
Form1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public partial class Form1 : Form
    {        public Form1()
        {
            InitializeComponent();
            _form2 = new Form2();
            _class1 = new Class1( _form2 );
        }
 
        private void Form1_Load( object sender, EventArgs e )
        {
            _form2.Show();
        }
 
        private void button1_Click( object sender, EventArgs e )
        {
            _class1.dv();
        }
    }
Form2:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        public DataGridView MyDGV
        {
            get { return dataGridView1; }
        }
        private System.Windows.Forms.DataGridView dataGridView1;
    }
Class1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    class Class1
    {
        public Class1( Form2 form2 )
        {
            this._form2 = form2;
        }
 
        public void dv()
        {
            _form2.MyDGV.Rows.Add();
        }
        Form2 _form2;
    }
А по-хорошему при проектировании рисуются диаграммы классов, что повышает Ваш уровень, как разработчика, и позволяет избежать большого количества головняка в будущем, в противоположность тому, чтобы сразу начинать "программировать вокруг" сложностей.
0
1 / 1 / 1
Регистрация: 11.01.2013
Сообщений: 153
12.03.2013, 23:41  [ТС] 19
C#
1
 private System.Windows.Forms.DataGridView dataGridView1;
Вот тут ругается говорит что уже существует
0
2646 / 1942 / 569
Регистрация: 02.08.2011
Сообщений: 5,391
13.03.2013, 04:21 20
1.Передавайте ссылку на Сlass1 во вторую форму, перегрузив конструктор и сохраняйте в поле.
2.В Class1 можно определить событие добавления элемента в коллекцию и подписаться на это событие методом, определенным во второй форме, который и будет добавлять строки в datagridview.

Добавлено через 2 минуты
мм, какая-то корявая архитектура, в Class1 думал коллекция будет, а он абсолютно пустой. с одним методом...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2013, 04:21
Помогаю со студенческими работами здесь

Передать данные из одной формы в другую
форма 1 public partial class Form1 : Form { public Form1() { ...

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

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

Как из одной формы передать данные в другую?
Например, есть 2 формы: в первой textbox1 и button1, во второй textbox2. Необходимо при нажатии...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru