目前我的应用程序看起来像这样:
它将数据从am XML文件读入数据集,然后设置数据源以适应此数据网格
当用户点击一行时,Notes部分中的数据显示在
下面的文本框中
当用户单击Notes按钮时,它们将被带到一个新表单form2,其中来自notes文本框的数据将被带入一个新的文本框。我希望能够做的是能够在表单2上的Notes文本框中输入新文本,然后当用户单击确定时保存到数据网格
完全相同:http://youtu.be/mdMjMObRcSk?t=28m41s
目前我所拥有的OK按钮的代码如下所示,我得到以下错误,因为我没有在该窗体上写过关于datagridview1的任何内容。
我想知道如何从文本框中获取用户输入并“更新”XML文件,以便使用新的Notes更新数据网格
我不确定这段代码是否有用,但这就是我将datagridview1_cellcontentclick链接到form1下面的文本框的方式,我想我需要重新使用新表单上的最后一行来覆盖数据,但我是不确定
if (e.RowIndex >= 0)
{
DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
//The data in the cells for the Notes Column turns into a string and is copied to the textbox below
textBox1.Text = row.Cells["somenotes"].Value.ToString();
感谢您的帮助!
答案 0 :(得分:1)
我认为您的问题与表单之间的联系有关(一个非常基本的问题)。您应该将form2视为对话框,在form1中,您可以这样显示:
//textBox1 is on your form1
if(form2.ShowDialog(textBox1.Text) == DialogResult.OK){
dataGridView1.Rows[dataGridView1.CurrentCellAddress.Y].Cells["somenotes"].Value = form2.Notes;
//perform your update to xml normally
//.....
}
//your Form2
public class Form2 : Form {
public Form2(){
InitializeComponent();
}
public string Notes {get;set;}
public DialogResult ShowDialog(string initText){
//suppose textBox is on your form2.
textBox.Text = initText;
return ShowDialog();
}
private void OKButton_Click(object sender, EventArgs e){
Notes = textBox.Text;
DialogResult = DialogResult.OK;
}
private void CancelButton_Click(object sender, EventArgs e){
DialogResult = DialogResult.Cancel;
}
}
//form2 is defined in your Form1 class.