2015-04-01 2 views
0

У меня есть две формы: Form1 и Form2.Как передать данные из childform в parentform

Form1 - Родитель Form2 - Детский

Form1 Содержит следующий,

Textbox - он загружает файл путь, DataGridView - он загружает файл с его данными, кнопки ButtonNext -когда cliked его открывает Form2,

Form2 Содержит следующие,

BrowseButton - это broswe для файла из каталога Текстовое поле - оно показывает путь ButtonFinish - он вернет вас обратно в Form1

* Теперь я хочу получить доступ к представлению данных из Form1 (Родитель) из Form2 (child). Теперь я могу передать файл в Form2, и когда я нажму «закончить», я могу увидеть мой путь к файлу Form1 (родительский) из текстового поля, но без загрузки данных.

Как я могу загрузить данные в Form1 в datagridview?

это мой код до сих пор ..

Form2.

public frmInputFile(frmMain_Page _frmMain) 
    { 
     InitializeComponent(); 
     this._frmMain = _frmMain; 
    } 

private void btnBrowse_Click(object sender, EventArgs e) 
{ 
    BrowseFile(); 
} 

private void btnFinish_Click(object sender,EventArgs e) 
    { 

     _frmMain.SetFilepath(txtInputfile.Text); 
     _grid.Rows.Clear();   //cant get the grid from form1 
     string PathSelection = ""; 
     if (txtInputfile.Text.Length > 0) 
     { 
      PathSelection = txtInputfile.Text; 
     } 
     oDataSet = new DataSet(); 
     XmlReadMode omode = oDataSet.ReadXml(PathSelection); 

     for (int i = 0; i < oDataSet.Tables[2].Rows.Count; i++) 
     { 
      string comment = oDataSet.Tables["data"].Rows[i][2].ToString(); 
      string font = Between(comment, "[Font]", "[/Font]"); 
      string datestamp = Between(comment, "[DateStamp]", "[/DateStamp]"); 
      string commentVal = Between(comment, "[Comment]", "[/Comment]"); 
      string[] row = new string[] { oDataSet.Tables["data"].Rows[i][0].ToString(), oDataSet.Tables["data"].Rows[i][1].ToString(), font, datestamp, commentVal }; 
      _grid.Rows.Add(row); 
     } 
     this.Hide(); 
     Program._MainPage.Show(); 

Form1

private void btnLoadfile_Click(object sender, EventArgs e) 
    { 
     frmInputFile frmInput = new frmInputFile(this); 
     frmInput.Show(); 

    } 
    public void SetFilepath(string Filepath) 
    { 
     txtInputfile.Text = Filepath; 
    } 
    //I dont know how i can handle the gridview here 
    public void Loadgrid(string LoadGrid) 
    { 
     Gridview_Input.ToString(); 
    } 
+0

возможно дубликат [Как вы передаете объект из Form1 в Form2 и обратно в form1?] (Http://stackoverflow.com/questions/4887820/how-do-you- pass-an-object-from-form1-to-form2-and-back-to-form1) – Dmitry

+0

Он выглядит дублирующимся, но с другим вопросом – prosts

ответ

0

Первые вещи сначала. Пожалуйста, избегайте дублирования сообщений.

Что такое переменная _grid здесь? Ваш путь передачи данных из одной формы в другую выглядит очень странным. Тем не менее, я попытался имитировать вашу проблему, и я могу добавить строки в Form1 из From2. Перечень кодов приведен ниже. Просто хочу отметить, что я добавил четыре столбца в свой DataGridView в дизайнере. В вашем случае вы можете добавить столбцы также программно.

public partial class Form2 : Form 
{ 
    public Form2(Form1 frm1) 
    { 
     InitializeComponent(); 
     Form1Prop = frm1; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form1Prop.SetFilepath("HIHI"); 

     Form1Prop.DataGridPropGrid.Rows.Add("HIH", "KI", "LO", "PO"); 
    } 

    public Form1 Form1Prop { get; set; } 
} 




public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 frm2 = new Form2(this); 
     frm2.Show(); 
    } 

    public void SetFilepath(string filepath) 
    { 
     textBox1.Text = filepath; 
    } 

    public DataGridView DataGridPropGrid 
    { 
     get 
     { 
      return dataGridView1; 
     } 
    } 
} 

Приветствия

+0

Yoh! ... вы спасли мою жизнь. Я застрял в этом несколько дней. Спасибо! – prosts

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