请教:C#中,如何在一个窗口中执行另一个窗口的操作?

流程描述:
1).假设现在有两个窗口form1和form2;
2).在form1中有两个按钮"保存"和"设置",
3).鼠标点击"设置"按钮后,打开form2;
4).在form2中可以进行一系列操作,例如现在进行的操作是写入数据库InsertAllOnSubmit操作,但此时并不进行提交到数据库的SubmitChanges操作.
5)进行"关闭"form2操作,但不是真正关闭,只是将窗口hide,因为form1窗口没有关闭前,可能再次点击"设置"按钮修改一些设置
6)在form1中点击"保存"设置,此时需要进行最重要的一步操作:<<"将在form2中修改的信息提交到数据库,即进行SubmitChanges操作">>,同时在进行这个操作的过程中,form2一直处于隐藏状态.
7).关闭form1,同时销毁form2窗口.
问题:如何才能实现第6)个步骤?

form1 构造函数中加一个form实体,把form2直接当参数传过去,在form1中实例一个form 这个form=form2
再调用form2的方法,给你个例子
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;

namespace 呼叫器
{
public partial class 特呼表 : Form
{

Form form;
public 特呼表(string PCName, object timeOut, string docName, string currentOfficeName,Form form)
{
// TODO: Complete member initialization
InitializeComponent();
this.PCName = PCName;
this.timeOut = timeOut;
this.docName = docName;
this.currentOfficeName = currentOfficeName;
this.form = form;
}

private void 特呼表_Load(object sender, EventArgs e)
{

}

private void dgvPatient_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{

form.Refresh();

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-02-26
你只需要在form2中写一个public方法用来提交数据,然后在form1中调用不就行了?
第2个回答  2014-02-26
如果直接调用其他窗口的控件可能会导致线程安全问题,最好使用委托来实现

请教:C#中,如何在一个窗口中执行另一个窗口的操作?
form1 构造函数中加一个form实体,把form2直接当参数传过去,在form1中实例一个form 这个form=form2 再调用form2的方法,给你个例子 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Net;using System....

C#中如何在一个窗体中调用另一个窗体控件中的数据?
在C#中,您可以通过以下几种方式在一个窗体中调用另一个窗体的控件中的数据:使用对话框形式调用另一个窗体,在打开的窗体中通过控件名称读取数据。通过实例化另一个窗体,将其显示为模态对话框,读取控件中的数据。通过使用公共属性或公共方法从另一个窗体读取数据。以下是一个例子,该例子使用对话框形式...

C#中如何在一个窗体中调用另一个窗体控件中的数据?
1、首先在窗体上增加如下的三个控件,两个label,一个button,我们要实现的效果是label1每一秒增加一个数字,label2每点击一下button增加一下数字。2、用到了定时任务,如下是两个定时任务的代码,一个是手动定时任务,就是我们点击按钮以后执行的,另一个是自动的订单是任务,程序运行以后执行的。3、...

C#怎样在一个窗体上执行另一个窗体的按钮,不能用new啊!
不过ManagedSpyLib的代码如果想要在Vista\/Win7(打开了UAC的情况下)正常运行,需要稍作修改(很小);而且要确保自动升级程序和客户端主程序是在同一个权限级别下运行(比如都是管理员身份或者都是非管理员身份),否则无法存取在另一个权限级别下运行进程的控件属性。此外,如果系统的.NET版本是3.5\/4...

c#怎么在一个窗口里面访问另一个窗口的方法?
有两种方法可以实现:1,使用委托,可以简单明了,更方便些 2,在form2类中,定义pulic form1 frm1;属性。重载form2的构造函数,构造函数包含参数 form1,把参数form1传递给属性frm1,即可。具体如下:public class form2:form { ...pulic form1 frm1;public form2()\/\/默认构造函数 { } public...

c#窗口设计中如何运行一个窗口以后运行另一个窗口
在form1中加个登录按钮,然后给它个单击事件 Click;在里面写 FORM2 form2=new FORM2();form2.show();就可以了

在C#中,如何在一个窗体中调用另一个窗体的数据?
另一个窗体上申明一个静态变量:public static string name;登录成功以后:另一个窗体.name="登录成功的name";在另一个窗体就可以: string username=this.name;

C#中如何在一个窗口打开另一个窗口?
在需要刷新的窗体里定义一个(静态)方法完成刷新操作,由其他窗体程序调用。

C#中在一个窗体中通过按钮打开另一个窗体
1、在winform项目点击右键-添加-新建项-Windows Forms-Windows 窗体,新建一个要弹出的窗体Form2。2、在Form1中拖入一个button,修改Text属性为弹出窗体。3、双击按钮,进入代码编写界面。4、编写代码“Form2 form2=new Form2;form2.ShowDialog();”。5、点击启动按钮,或者按F5键,运行程序。6、点击...

C#编程中怎么在一个窗体按下一个按钮调用另一个窗体的按钮的事件
先要得到你说的“另一个窗口”的句柄。比如A窗口有一个按钮butA,B窗口有一个按钮butB,你是想通过按butA时,调用butB的onclick事件是吧。在按下butA时候,创建一个窗口B,假如叫FormB formB = new FormB(); formB.butB.onclick();这样就可以调用了。

相似回答