我有一个datagridview,用于在列中显示我的数据。 我想要完成的是,在选择一行并按下编辑按钮后,将打开一个新表单并拆分右侧文本框的行以更新数据。
datagridview行显示不同类型的数据:姓名,电子邮件,日期等......
任何想法? 提前致谢!
答案 0 :(得分:2)
该网站解释了如何在表单之间发送数据,就像在数据网格中选择正确的单元格一样简单,将所有信息发送到右侧文本框。然后把它们送回去。 Data between forms
基础是创建一个可用于获取值的方法
public string getTextBoxValue()
{
return TextBox.Text;
}
然后你可以调用方法在表单之间传递数据,
this.Text = myForm2.getTextBoxValue();
然而,你将发送单元格的值,并将使textbox.text等于方法的返回 这是理论的一个基本例子,如果你只是不能回来寻求帮助并且用代码编辑病毒,那么你可以尝试自己使用它,但是只有在你试过之后你自己第一次
答案 1 :(得分:2)
您可以使用与DataGridView列对应的属性创建一个类,例如MyDataCollection。当您按下编辑按钮时,创建此类的新实例,用必要的数据填充它并将其作为参数传递给EditForm的构造函数。
public class MyDataCollection
{
public string Name;
public string Email;
// --
}
以您的主要形式:
void btnEdit_Click(object sender, EventArgs e)
{
// Create the MyDataCollection instance and fill it with data from the DataGridView
MyDataCollection myData = new MyDataCollection();
myData.Name = myDataGridView.CurrentRow.Cells["Name"].Value.ToString();
myData.Email = myDataGridView.CurrentRow.Cells["Email"].Value.ToString();
// --
// Send the MyDataCollection instance to the EditForm
formEdit = new formEdit(myData);
formEdit.ShowDialog(this);
}
编辑表单应如下所示:
public partial class formEdit : Form
{
// Define a MyDataCollection object to work with in **this** form
MyDataCollection myData;
public formEdit(MyDataCollection mdc)
{
InitializeComponent();
// Get the MyDataCollection instance sent as parameter
myData = mdc;
}
private void formEdit_Load(object sender, EventArgs e)
{
// and use it to show the data
textbox1.Text = myData.Name;
textbox2.Text = myData.Email;
// --
}
}
您还可以忘记MyDataCollection类,并将整个DataGridViewRow传递给formEdit的构造函数。