Try this :-
First create 4 Public Static string variables in form1 class for eg.
public static string text1, text2, text3, text4;
then on Form1 Button Click event write the following code:-
private void button1_Click(object sender, EventArgs e)
{
text1 = Datagridview.Rows[e.RowIndex].Cells[0].value.ToString();
text2 = Datagridview.Rows[e.RowIndex].Cells[1].value.ToString();
text3 = Datagridview.Rows[e.RowIndex].Cells[2].value.ToString();
text4 = Datagridview.Rows[e.RowIndex].Cells[3].value.ToString();
}
And in Form2 write following code on form load event or create button and write in click event :-
private void form2_Load(object sender, EventArgs e)
{
TextBox1.Text = Form1.text1;
TextBox2.Text = Form1.text2;
TextBox3.Text = Form1.text3;
TextBox4.Text = Form1.text4;
}
This is the Answer for your First Question.
Second Question Answer is :-
In Form2 if you change the values in Textbox then you save it. In Save Button Click event only, after the Save Code is complete, call the Form1 Load event or any other event in which you have written the code to load data in Datagridview.
In Form1 if you have written Code in Form Load event to Load data in Datagridview, then just copy that code and create One Public method like this:-
public void Get_Data()
{
}
and Call this method in Form Load event like this :-
private void form1_Load(object sender, EventArgs e)
{
public void Get_Data();
}
And in same way call the same method in Form 2 Save Button Click event like this:-
First create the form object in which you have written code and access method, like this.
private void Savebutton_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.Get_Data();
}
This is The Answer for Second Question
If need any help then plz post in comment or reply.