我在winforms工作。在那,我有一个datagridview
。我已将选定的单元格值转移到新表单form2
但现在我想将form2
中的文本框值重新传输到datagridview
单元格。
我该怎么做?
在form2
和label1
上,有button1
和textbox
。我希望在填充textbox
并按下button1
时,它会将文本从textbox
传输到所选的单元格。
我使用了以下代码。
button_click
事件代码......
但是下面会出现错误。
“对象引用未设置为对象的实例”
答案 0 :(得分:2)
你确实重新创建了表单2中的主表单,这可能不是你需要的。 将代码更改为:
private void editToolStripMenuItem_Click(object sender, EventArgs e)
{
form2 f2 = new form2();
f2.label1.Text = dataGridView1.SelectedCells[0].Value.ToString();
f2.ShowDialog();
dataGridView1.SelectedCells[0].Value = f2.textBox1.Text;
}
private void button1_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
答案 1 :(得分:0)
DataGridView
的设计属性
dataGridView1.Modifiers = Public
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (var f = new Form2 { Owner = this})
{
f.valueFromSelectedCell = dataGridView1.SelectedCells[0].EditedFormattedValue.ToString();
f.ShowDialog();
}
}
}
public partial class Form2 : Form
{
public string valueFromSelectedCell { get; set; }
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text = valueFromSelectedCell;
}
private void button1_Click(object sender, EventArgs e)
{
Form1 f = this.Owner as Form1;
var currentCell = f.dataGridView1.CurrentCell;
f.dataGridView1[currentCell.ColumnIndex, currentCell.RowIndex].Value = textBox1.Text;
Close();
}
}