111,092
社区成员




Form1 frm = new Form1();
public MainView()
{
InitializeComponent();
if (!mvvmContext1.IsDesignMode)
InitializeBindings();
//激活form1的委托事件方法,给该事件传方法
frm.ShowEvent += () =>
{
this.Visible = true;//将本窗体隐藏
};
}
private void button5_Click(object sender, EventArgs e)
{
this.Visible = false;
frm.Show();//打开Form1窗体
frm.Visible = true;//Form1显示
}
Form1.cs
public delegate void ShowDelegate();//委托方法
public event ShowDelegate ShowEvent;//事件方法
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (null != ShowEvent)
{
ShowEvent();//这样事件就可以调用MainView窗体的Visible的值,将MainView窗体显示
this.Visible = false;//将本窗体隐藏
}
else
{
MessageBox.Show("不能显示窗口");
}
}
Form1 _form1 = new Form1();
Form2 _form2 = new Form2();
private void button1_Click(object sender, EventArgs e)
{
OpenForm(_form1);
}
void OpenForm(Form form)
{
form.TopLevel = false;
form.TopMost = false;
if (!this.panel1.Controls.Contains(form))
{
this.panel1.Controls.Add(form);
}
foreach (Control c in this.panel1.Controls)
{
c.Visible = c == form;
}
}
private void button2_Click(object sender, EventArgs e)
{
OpenForm(_form2);
}
public partial class FrmMdiUserlim : DevExpress.XtraEditors.XtraForm
{
//申明本窗体对象
public static FrmMdiUserlim frmMDIUserlim { get; set; }
public FrmMdiUserlim()
{
InitializeComponent();
frmMDIUserlim = this;
}
/// <summary>
/// 新增
/// </summary>
/// <param name="frm">来源窗体</param>
public void NewfrmMDIUser(DevExpress.XtraEditors.XtraForm frm)
{
foreach (Control ctl in groupBox1.Controls)
{
if (ctl is CusPro.FormsUI.Docking.CusTextBox)
{
(ctl as CusPro.FormsUI.Docking.CusTextBox).Text = "";
(ctl as CusPro.FormsUI.Docking.CusTextBox).ReadOnly = false;
}
if (ctl is CusPro.FormsUI.Docking.CusLookUpEdit)
{
(ctl as CusPro.FormsUI.Docking.CusLookUpEdit).Text = "";
(ctl as CusPro.FormsUI.Docking.CusLookUpEdit).ReadOnly = false;
}
if (ctl is CusPro.FormsUI.Docking.CusComboBoxEdit)
{
(ctl as CusPro.FormsUI.Docking.CusComboBoxEdit).Text = "";
(ctl as CusPro.FormsUI.Docking.CusComboBoxEdit).ReadOnly = false;
}
if (ctl is DevExpress.XtraEditors.CheckEdit)
{
(ctl as DevExpress.XtraEditors.CheckEdit).ReadOnly = true;
(ctl as DevExpress.XtraEditors.CheckEdit).Enabled = false;
}
}
label13.Enabled = false;
tBoxValdate.Enabled = false;
tBoxValdate.ReadOnly = true;
//生成相关编号信息
tBoxLogno.Text = ContextHelper.ExecUserLogno();
tBoxLogno.ReadOnly = true;
//界面方案
cmbProjna.SelectedIndex = 0;
//用户级别
cmbUserlev.SelectedIndex = 3; //默认项
//用户类型
cmbUsertype.SelectedIndex = 0;
frm.ShowDialog();
frm.Activate(); //子窗体获得焦点
}
}
//调用的窗体:
public partial class FrmUserlim : BaseDock
{
public FrmUserlim()
{
InitializeComponent();
FrmMdiUserlim.frmMDIUserlim = new FrmMdiUserlim();
}
/// <summary>
/// 新增记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BarBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
IsActState = 0;
if ((int)Portal.gc.UserInfo.Userlev == 3) return;
FrmMdiUserlim.frmMDIUserlim.NewfrmMDIUser(FrmMdiUserlim.frmMDIUserlim);
//重载gridCtl数据
InitData();
gridView1.FocusedRowHandle = gridView1.DataRowCount - 1; //焦点指向最后一行
}
}
这样调用的窗体对象或者方法,都会传递过来,而不是New一个新的。