如何在 C# 中将文本从 From2 传输到 Form1 中的 dataGridView 单元格
How to transfer text from From2 to dataGridView cell in Form1 in C#
我有一个包含带有按钮单元格的 dataGridView 的表单。我还有第二种形式,它有一个文本框。如何将文本从 Form2 传输到 Form1 上的 dataGridView?
例如:
我单击 dataGridView 按钮单元格以启动第二种形式,在第二种形式中,我 select 一个单选按钮来处理来自的文本,然后单击一个按钮将文本传输到单击的单元格中Form1 中的 dataGridView。
这是我目前的代码:
表格 1(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.
我到底做错了什么?
感谢您的帮助。
解决方法其实很简单,你改一下:
private Top_Shine_Form frm = new Top_Shine_Form();
收件人:
public static string passingText;
Form2 中的按钮:
passingText = radioButton1.Text;
在 dataGridView1_CellContentClick 的 Form1 中:
dataGridView1.CurrentCell.Value = Form2.passingText;
我有一个包含带有按钮单元格的 dataGridView 的表单。我还有第二种形式,它有一个文本框。如何将文本从 Form2 传输到 Form1 上的 dataGridView?
例如:
我单击 dataGridView 按钮单元格以启动第二种形式,在第二种形式中,我 select 一个单选按钮来处理来自的文本,然后单击一个按钮将文本传输到单击的单元格中Form1 中的 dataGridView。
这是我目前的代码:
表格 1(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.
我到底做错了什么?
感谢您的帮助。
解决方法其实很简单,你改一下:
private Top_Shine_Form frm = new Top_Shine_Form();
收件人:
public static string passingText;
Form2 中的按钮:
passingText = radioButton1.Text;
在 dataGridView1_CellContentClick 的 Form1 中:
dataGridView1.CurrentCell.Value = Form2.passingText;