0

i have a datagridview that show my data in columns. what i'm trying to accomplish is that after choosing a row and pressing edit button a new form will open and split the row for the right text boxes to update the data.

the datagridview row shows different types of data: name,email,date,etc...

any idea? Thanks in advance!

4

2 回答 2

2

该站点解释了如何在表单之间发送数据,就像在数据网格中选择正确的单元格一样简单,将信息发送到正确的文本框,对于所有这些。然后将它们送回。表格之间的数据

基础是创建一个可用于获取值的方法,

    public string getTextBoxValue()
{
    return TextBox.Text;
}

然后您可以调用该方法在表单之间传递数据,

this.Text = myForm2.getTextBoxValue();

但是,您将发送单元格的值,并使 textbox.text 等于方法的返回这是该理论的一个基本示例,请自己尝试使其适用于您想要的做,如果你做不到,请回来寻求帮助并用代码编辑错误,但只有在你先尝试过自己之后

于 2012-05-02T09:55:35.700 回答
2

您可以创建一个类,例如 MyDataCollection,其属性对应于您的 DataGridView 列。当你按下 Edit 按钮时,创建这个类的一个新实例,用必要的数据填充它,并将它作为参数传递给 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 的构造函数。

于 2012-05-02T10:48:13.940 回答