我有2种形式:Form1
包含DataGridView
控件Form2
包含Textbox
控件(处于只读模式),复选框和按钮。
当我选择DataGridView
行时,它将显示Form2并在TextBoxes中显示其值。刚才一切似乎都变好了。
我想知道的是在文本框中显示数据之后,我检查RadioButton,然后单击该按钮,它将返回到所选行的Form1,并自动更改单元格4的值。
这是我的代码:
表格1
private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
DataGridViewCell cell = null;
foreach (DataGridViewCell selectedCell in dataGridView1.SelectedCells)
{
cell = selectedCell;
break;
}
if (cell != null)
{
DataGridViewRow row = cell.OwningRow;
string objet = row.Cells[0].Value.ToString();
string objectif = row.Cells[1].Value.ToString();
string date = row.Cells[2].Value.ToString();
string commentaire = row.Cells[3].Value.ToString();
string client = row.Cells[5].Value.ToString();
string commercial = row.Cells[6].Value.ToString();
Détails_RDV détails = new Détails_RDV();
détails.obj = objet;
détails.objectif = objectif;
détails.date = date;
détails.comm = commentaire;
détails.clt = client;
détails.commer = commercial;
détails.Show();
}
}
表格2
public partial class Détails_RDV : Form
{
public string obj ;
public string objectif;
public string date;
public string comm;
public string clt ;
public string commer;
public Détails_RDV()
{
InitializeComponent();
}
private void Détails_RDV_Load(object sender, EventArgs e)
{
txtObjet.Text = obj;
txtObjectif.Text = objectif;
txtDate.Text = date;
txtCommerci.Text = commer;
txtClient.Text = clt;
txtCommentaire.Text = comm;
}
private void btnValider_Click(object sender, EventArgs e)
{
if (checkEffectue.Checked == true)
{
//What should I write here??
Liste_RDV lrdv = new Liste_RDV();
lrdv.Show();
}
}
我怎样才能做到这一点 ?
最佳答案
在Form2
的按钮单击事件中,检查是否已选中该复选框,只需将DialogResult
设置为OK
,否则将其设置为Cancel
:
if (checkBox1.Checked)
this.DialogResult = System.Windows.Forms.DialogResult.OK;
else
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
在
Form1
中,使用Show
而不是ShowDialog
并检查结果是否为OK
,然后执行所需的更新:var f2 = new Form2();
//Set values
if(f2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//Perform update here
}
这样,每种形式都有自己的责任,您可以在
Form1
中编写与Form1
相关的代码,而无需在Form2
中编写它们。关于c# - 从其他形式更改DataGridView单元格的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38011808/