0

我有一個包含帶有按鈕單元格的dataGridView的表單。我也有第二種形式,有一個文本框。如何將Form2中的文本傳輸到Form1上的dataGridView?如何將文本從From2傳輸到Form1中的dataGridView單元格C#

例如:

我在DataGridView的鈕釦電池點擊啓動第二個形式,第二形式我選擇一個單選按鈕,從應對文本,然後點擊一個按鈕,將文本傳輸到單擊的單元格在Form1中的dataGridView中。

這是我到目前爲止的代碼:

Form1中(Top_Shine_Form):

namespace Top_Shine 
{ 
public partial class Top_Shine_Form : Form 
{ 
    public Top_Shine_Form() 
    { 
     InitializeComponent(); 
    } 

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
    { 
     if(e.ColumnIndex >= 2) 
     { 
      Form2 f2 = new Form2(); 
      f2.ShowDialog(); 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 

     if (radioButton1.Checked) 
     { 
      DataTable dgv1 = new DataTable(); 
      dgv1.Columns.Add("Time"); 
      dgv1.Columns.Add("CarColorNumber"); 
      dgv1.Columns.Add("Interior"); 
      dgv1.Columns.Add("Exterior"); 

      DataRow row = dgv1.NewRow(); 
      row["Time"] = Timetxt.Text; 
      row["CarColorNumber"] = CNametxt.Text + "/" + CColortxt.Text + "/" + CNumbertxt.Text; 

      row["Interior"] = "*"; 
      row["Exterior"] = "*"; 

      dgv1.Rows.Add(row); 

      foreach (DataRow dr in dgv1.Rows) 
      { 
       int num = dataGridView1.Rows.Add(); 
       dataGridView1.Rows[num].Cells[0].Value = dr["Time"].ToString(); 
       dataGridView1.Rows[num].Cells[1].Value = dr["CarColorNumber"].ToString(); 

       if (interiorCB.Checked) 
       { 
        dataGridView1.Rows[num].Cells[2].Value = dr["Interior"].ToString(); 
       } 
       if (ExteriorCB.Checked) 
       { 
        dataGridView1.Rows[num].Cells[3].Value = dr["Exterior"].ToString(); 
       } 

      } 
      radioButton1.Checked = false; 
     } 

     CNametxt.Clear(); 
     CColortxt.Clear(); 
     CNumbertxt.Clear(); 
     Timetxt.Clear(); 
     interiorCB.Checked = false; 
     ExteriorCB.Checked = false; 
    } 
    } 
} 

這是我的Form2代碼:

namespace Top_Shine 
{ 
public partial class Form2 : Form 
{ 
    public Form2() 
    { 
     InitializeComponent(); 
    } 

    private Top_Shine_Form frm = new Top_Shine_Form(); 
    private void button1_Click(object sender, EventArgs e) 
    { 
     int num = frm.dataGridView1.Rows.Add(); 
     if (radioButton1.Checked) 
     { 
      frm.dataGridView1.CurrentCell.Value = radioButton1.Text; 
     } 
    } 
    } 
} 

現在一切都正常運行,直到我單擊Form2上的按鈕以傳輸文本。並顯示以下錯誤:

An unhandled exception of type 'System.NullReferenceException' occurred in Top Shine.exe 

Additional information: Object reference not set to an instance of an object. 

我究竟在做什麼錯?

感謝您的幫助。

回答

0

的解決方案很簡單其實,你改變了:

private Top_Shine_Form frm = new Top_Shine_Form(); 

要:

public static string passingText; 

在窗體2按鈕:

passingText = radioButton1.Text; 

在Form1上dataGridView1_CellContentClick:

dataGridView1.CurrentCell.Value = Form2.passingText; 
相關問題