2015-04-12 7 views
0

У меня есть текстовые поля на моей второй форме и кнопка отправки, которая находится в коде, показанном ниже.Передача данных в DataGridViews

private void button1_Click(object sender, EventArgs e) 
{ 
    Form1 f1 = new Form1(); 
    f1.PassName = richTextBox1.Text; 
    f1.PassLastName = richTextBox2.Text; 
    f1.PassAge = comboBox1.Text; 
    f1.PassGender = richTextBox3.Text; 
    f1.ShowDialog(); 
} 

и DataGridView по форме 1 с этим кодом

public partial class Form1 : Form 
{ 
    private string name; 
    private string lastName; 
    private string age; 
    private string gender; 

    public string PassName 
    { 
     get { return name; } 
     set { name = value; } 
    } 

    public string PassLastName 
    { 
     get { return lastName; } 
     set { lastName = value; } 
    } 

    public string PassAge 
    { 
     get { return age; } 
     set { age = value; } 
    } 

    public string PassGender 
    { 
     get { return gender; } 
     set { gender = value; } 
    } 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     int n = dataGridView1.Rows.Add(); 
     dataGridView1.Rows[n].Cells[0].Value = name; 
     dataGridView1.Rows[n].Cells[1].Value = lastName; 
     dataGridView1.Rows[n].Cells[2].Value = age; 
     dataGridView1.Rows[n].Cells[3].Value = gender; 
    } 

    private void mnuExit_Click(object sender, EventArgs e) //adding the quit on the top file with caution message 
    { 
     if (MessageBox.Show("Do you really want to Quit?", "Exit", MessageBoxButtons.OKCancel) == DialogResult.OK) 
     { 
      Application.Exit(); 
     } 
    } 

    private void addTask_Click(object sender, EventArgs e) 
    { 
     Form2 f2 = new Form2(); //show form2 so user can input data 
     f2.ShowDialog(); 
    } 

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
    { 

    } 

}` 

Это нормально, если я хочу, чтобы отправить один набор данных в DataGridView, но если добавить новую информацию снова, то это открывает новый DataGridView и сохраняет его в другом отдельном DataGridView, тогда у меня есть две формы DataGridView. Я хочу поместить все данные на один DataGridView и продолжать добавлять строки. Поэтому, когда пользователь нажимает кнопку добавления в первой форме с помощью DataGridView, он открывает форму TextBox, которая является формой 2, затем пользователь заполняет эту информацию и нажимает кнопку отправки, которая отправляет информацию обратно на DataGridView, однако это затем открывается новое окно с новым DataGridView. Я не хочу, чтобы это произошло. Я хочу, чтобы он продолжал добавлять строки в первую форму.
Может ли кто-нибудь показать мне, как это сделать?

ответ

1

Вы можете использовать ShowDialog (this) и Владелец, чтобы получить свойство родительской формы.

Form1

private void Form1_Load(object sender, EventArgs e) 
{ 
    //Move to Form1_Activated 
    this.Activated += new System.EventHandler(this.Form1_Activated); //connect 
} 

private void Form1_Activated(object sender, EventArgs e) 
{ 
    int n = dataGridView1.Rows.Add(); 
    dataGridView1.Rows[n].Cells[0].Value = name; 
    dataGridView1.Rows[n].Cells[1].Value = lastName; 
    dataGridView1.Rows[n].Cells[2].Value = age; 
    dataGridView1.Rows[n].Cells[3].Value = gender; 
} 

private void addTask_Click(object sender, EventArgs e) 
{ 
    Form2 f2 = new Form2(); //show form2 so user can input data 
    f2.ShowDialog(this);//set this form as Owner 
} 

Form2

private void button1_Click(object sender, EventArgs e) 
{ 
    Form1 f1 = (Form1)this.Owner;//Get the Owner form 
    f1.PassName = richTextBox1.Text; 
    f1.PassLastName = richTextBox2.Text; 
    f1.PassAge = comboBox1.Text; 
    f1.PassGender = richTextBox3.Text; 
    //f1.ShowDialog(); 
    f1.Show(); 
    this.Close(); 
} 
+0

Это выглядит многообещающим, однако теперь, когда я нажимаю на кнопку посыла ни один из текстового поля/полей ComboBox отображаются в DataGridView. Есть идеи? – Sup

+0

Какая кнопка отправки? button1 в Form2? –

+0

Вы подключили Form1_Activated с помощью Form1? –

Смежные вопросы