none
Перенести данные с DataGridView на Form2 RRS feed

  • Вопрос

  • Создал DataGridView с загрузкой Excel файлов. теперь надо перенести данные с DataGridView в Form2 и печатать оттуда. Буду благодарен за любую помощь. Перевел данные с textbox вот так код ниж

    Form2

    private void button1_Click(object sender, EventArgs e)

            {
                DialogResult fontResult = fontDialog1.ShowDialog();
                if (fontResult == DialogResult.OK)
                {
                    PassNameLbl1.Font = fontDialog1.Font;
                    PassNameLbl2.Font = fontDialog1.Font;
                    PassNameLbl3.Font = fontDialog1.Font;
                    PassNameLbl4.Font = fontDialog1.Font;
                    PassNameLbl5.Font = fontDialog1.Font;
                    PassNameLbl6.Font = fontDialog1.Font;
                    PassNameLbl7.Font = fontDialog1.Font;
                    PassNameLbl8.Font = fontDialog1.Font;

    }

    Form1

                

    private void button3_Click(object sender, EventArgs e)
            {
                Form2 form2 = new Form2();

                form2.strings.Add(textBox1.Text);
                form2.strings.Add(textBox2.Text);
                form2.strings.Add(textBox3.Text);
                form2.strings.Add(textBox4.Text);
                form2.strings.Add(textBox5.Text);
                form2.strings.Add(textBox6.Text);
                form2.strings.Add(textBox7.Text);
                form2.strings.Add(textBox8.Text);

    }



Ответы

  • После действий со скрина, Вас кинет в код функции on_form2_shown (с нужными аргументами).

    Имя функции Вы задаёте сами (в данном случае on_form2_shown).

    Эта функция будет вызываться всякий раз, когда форма будет показана (Form.show() - метод)




  • После перноса разложить можно как угодно в функции: on_form2_shown

    Если вым нужны отдельные данные, то создайте свой класс из данных, которые Вам нужны. Я же Вам написал это.

    что мешает сделать, к примеру:

    public List<string> SomeData;

    И передать его?

    Я же написал, что привожу пример. Конкретная реазилация упирается в те данные, которые нужны Вам. Я их не знаю и могу только гадать, что именно Вам необходимо перенсти.

    P.S. Открылась у меня Ваша картинка. Как я понимаю, вам нужно в форме 2 разобрать одну строку из датагрид.

    Так в чем проблема?

    пишете класс:

    public class CurEntity
    {
        public string Name { get; set; }
        public string Zavedenie { get; set; }
        public DateTime Year { get; set; }
        // Вставляем, что Вам еще надо
    }

    Дальше форма2:

    public CurEntity SomeData; // В дизайнере вешаем на событие show функцию on_form2_shown, после чего создается функция on_form2_shown с нужными параметрами. priveate on_form2_shown () // сделается автоматом с нужными параметрами { // обрабатываем данные. На пример: this.messageBox1.Text = SomeData.Name;

    this.messageBox2.Text = SomeData.Zavedenie; }

    Дальше форма1:
    private void button3_Click(object sender, EventArgs e)
    {
      Form2 form2 = new Form2();
    
      form2.SomeData.Name = "Иванов";
      form2.SomeData.Zavedenie = "Школа";
      form2.SomeData.Year = new DateTime(1995, 1, 4);
    }
    Все. Данные переданы

Все ответы

  • в Form2 создаём:

    public string SomeData;
    
    // В дизайнере вешаем на событие show функцию on_form2_shown, после чего создается функция on_form2_shown с нужными параметрами.
    priveate on_form2_shown () // сделается автоматом с нужными параметрами
    {
      // обрабатываем данные. На пример:
      this.messageBox1.Text = SomeData;
    }

    После создания переменной формы 2 (как я понимаю в форме 1):

    Form2 NewWindow = new Form2();
    NewWindow.SomeData = 'helllo!!!!!';
    Form2.Show();

    P.S. код писал тут, так что могут быть ошибки, но принцип, думаю понятен.
    • Изменено xjomanx 18 мая 2015 г. 7:23
  • Если честно не так уж понятно по сколку я новичок в этом сфере и думаю вы не так поняли вопрос.

    вопрос в том что у меня в датагрид данные примеру вот такие

    Фамилия          Имя         Отчество       Число рождения     Месяц         Год          № регис       Пол

    Иванов            Иван         Иванович          11                       11            2015        321654          М

    их надо перенести в форму2 точнее по  Label-ам. каждая строка по отделным Label-ам. 

    Form2

    http://www.fotolink.su/v.php?id=3dfba0a2b082bad3539d65c091210028

  • К сожалению, у меня не открывается Ваша ссылка.

    Если Вы хотите перенсти полностью класс DataGreedView (вместе с системными значениями)

    делаем так:

    в Form2 вместо класса string (в моем предыдущем коде) делаем класс:

    public DataGridViewRowCollection AllRows;

    в функции on_form2_shown делаем обработку и вывод данных на экран, если это нужно

    В Вашем коде пишем:

    private void button3_Click(object sender, EventArgs e)
    {
      Form2 form2 = new Form2();
      // datagridView1 - заменить на Вашу переменную
      form2.allRows = this.datagridView1.Rows;
    }

    Полсе того, как отработает form2.allRows = this.datagridView1.Rows; переменная allRows во второй ворме будет содержать данные из datagridView1.Rows в первом окне и Вы сможете спокойно к ним обращаться.


    • Изменено xjomanx 18 мая 2015 г. 9:40
  • опять 25.

    с датагрид каждая строка каждый столбец должен отдельно ложится  форме2 в label. не вес список надо перенести.


  • После перноса разложить можно как угодно в функции: on_form2_shown

    Если вым нужны отдельные данные, то создайте свой класс из данных, которые Вам нужны. Я же Вам написал это.

    что мешает сделать, к примеру:

    public List<string> SomeData;

    И передать его?

    Я же написал, что привожу пример. Конкретная реазилация упирается в те данные, которые нужны Вам. Я их не знаю и могу только гадать, что именно Вам необходимо перенсти.

    P.S. Открылась у меня Ваша картинка. Как я понимаю, вам нужно в форме 2 разобрать одну строку из датагрид.

    Так в чем проблема?

    пишете класс:

    public class CurEntity
    {
        public string Name { get; set; }
        public string Zavedenie { get; set; }
        public DateTime Year { get; set; }
        // Вставляем, что Вам еще надо
    }

    Дальше форма2:

    public CurEntity SomeData; // В дизайнере вешаем на событие show функцию on_form2_shown, после чего создается функция on_form2_shown с нужными параметрами. priveate on_form2_shown () // сделается автоматом с нужными параметрами { // обрабатываем данные. На пример: this.messageBox1.Text = SomeData.Name;

    this.messageBox2.Text = SomeData.Zavedenie; }

    Дальше форма1:
    private void button3_Click(object sender, EventArgs e)
    {
      Form2 form2 = new Form2();
    
      form2.SomeData.Name = "Иванов";
      form2.SomeData.Zavedenie = "Школа";
      form2.SomeData.Year = new DateTime(1995, 1, 4);
    }
    Все. Данные переданы

  • Давайте так,

    Как я понял, нужные Вам данные Вы уже перенесли во вторую форму.

    Тогда у меня возникает вопрос:

    Что конкретно Вы хотите перенести из первой формы во вторую, и зачем?

  • еще не перенесли.

    // В дизайнере вешаем на событие show функцию on_form2_shown, это не понятно

    В форме2 открыл событие (event) дальше что?

     
  • После действий со скрина, Вас кинет в код функции on_form2_shown (с нужными аргументами).

    Имя функции Вы задаёте сами (в данном случае on_form2_shown).

    Эта функция будет вызываться всякий раз, когда форма будет показана (Form.show() - метод)




  • Давайте так,

    Как я понял, нужные Вам данные Вы уже перенесли во вторую форму.

    Тогда у меня возникает вопрос:

    Что конкретно Вы хотите перенести из первой формы во вторую, и зачем?

    напишите почту скину программу. если интересно стало. за одно посмотрите что к чему. а то голова взорвется.  
  • Интересно помогать разобраться. У меня и самого есть что писать :)

    Есть ещё вопросы?

  • не работает код или я что то не так сделал. мб закинут вам проект?
  • Не работает код это не ошибка, это проблема. Проблемы решаются путём исправления ошибок (которые есть, иначе бы не было проблем).

    Пишите ошибки, если не можете сами разобраться, тут Вам помогут. Но говорить "У меня не работает, помогите" или "напишите за меня" не совсем правильно, т.к. первое подразумевает, что Вы не хотите разбираться в проблеме, а второе, что оно вообще Вам не нужно. Тогда зачем вообще что то делать?

  • я новичок в этом сфере и научится самому с самого начало времени нет. срок заканчивается заказа. я вед не прошу же целый проект сделать. то что здесь написал это капля из море. все равно благодарю!
  • Как я понимаю, вопросов больше не возникает, и тему можно закрыть? :)
    • Предложено в качестве ответа xjomanx 26 мая 2015 г. 6:30
  • спасибо огромное. да тему можно закрыть. а как его закрыть?
  • Ну, в смысле отметить, как отвеченную :) Я об этом :)