当前位置: 首页 > 编程语言 > C#

连接窗体和ShowDialog()分享

时间:2023-04-11 11:41:39 C#

连接窗体和ShowDialog()假设我们有两个窗体。form1使用ShowDialog()函数调用form2。仅在form2关闭后才在form1上运行代码的最佳方法是什么?实际上我想用form2的数据填充form1的datagridview。voidfrmAnalysis_Activated(objectsender,EventArgse){//我正在使用这个事件来添加行if(selectedEXP.Count!=0){dgvExperiments.Rows.Clear();foreach(SelectedExperimentsinselectedEXP){for(inti=0;i0){MessageBox.Show("True");}尝试{intk=0;OleDbDataAdapterda;da=newOleDbDataAdapter("select*from[AnalysisExperiments]",conn);stringExpQuery="updateAnalysisExperimentssetSampleNumber=@SampleNumber,Status=@StatuswhereID='"+tbJobNumber.Text+"'andExperiment='";foreach(dgvExperiments.Rows中的DataGridViewRow行){ExpQuery=ExpQuery+row.Cells["Experiment"].Value.ToString()+"'";OleDbCommandupdateCommand=newOleDbCommand(ExpQuery,conn);updateCommand.Parameters.Add("@SampleNumber",OleDbType.VarWChar);updateCommand.Parameters["@SampleNumber"].Value=row.Cells["SampleNumber"].Value.ToString();updateCommand.Parameters.Add("@Status",OleDbType.Boolean);updateCommand.Parameters["@Status"].Value=row.Cells["Status"].Value;da.UpdateCommand=updateCommand;conn.Open();k=da.UpdateCommand.ExecuteNonQuery();conn.Close();}if(k==1)MessageBox.Show("Done");else{MessageBox.Show("NothingUpdated!");}}catch(Exceptionex){MessageBox.Show(ex.Message);}#endregion我试着更新一些data,但我没有dgvExperiments行的错误这是一个如何执行此操作的示例,用您的实际数据和函数替换数据和函数。使用以下代码:Form1:publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){Form2form2=newForm2(this);form2.ShowDialog();}publicvoidSomeFunction(stringsomeData){dataGridView1.Rows.Clear();foreach(someData中的字符串数据){dataGridView1.Rows.Add(数据);如您所见,我将其用作新的Form2参数form2:publicpartialclassForm2:Form{Form1MainForm;publicForm2(Form1form)//这就是为什么你需要给“this”作为参数{InitializeComponent();主窗体=窗体;}privatevoidbutton1_Click(objectsender,EventArgse){//在这里你调用你的函数并发送数据来填充DataGridViewListlistOfData=newList{"someDataA","someDataB"};MainForm.SomeFunction(listOfData);这个。关闭();如您所见,参数在这里:publicForm2(Form1form),我们可以在类MainForm=form中访问它,然后在执行一些操作(在我的例子中单击按钮)后,我们从mainform调用SomeFunction并传递数据。如果您使用ShowDialog(),Form1中的代码执行将“停止”,直到Form2关闭。这就是你想要的。如果您在Form2中有公共属性,则可以在关闭Form2后访问Form1中的数据。查看JohnG为示例提供的链接。以上就是C#学习教程分享的全部内容:连接窗体和ShowDialog()。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢