顾乔芝士网

持续更新的前后端开发技术栈

c#窗体传值

在WinForm编程中我们经常需要进行俩个窗体间的传值。

下面我给出了两种方法,来实现传值

一、在输入数据的界面中定义一个属性,供接受数据的窗体使用

1、子窗体

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using DevExpress.XtraEditors;


namespace DevControl

{

public partial class FEdit : DevExpress.XtraEditors.XtraForm

{

public FEdit()

{

InitializeComponent();

}


public string Value { get; private set; }


private void btnOk_Click(object sender, EventArgs e)

{

this.Value = this.txtData.Text;

}


}

}


2、父窗体


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;


namespace DevControl

{

public partial class View : Form

{

public View()

{

InitializeComponent();

}


private void barButtonItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)

{

FEdit edit = new FEdit();

if (edit.ShowDialog()==DialogResult.OK)

{

this.txtDate.Text = edit.Value;


}

   }

}

}


二、在输入数据的界面中定义一个委托,委托中的参数是所输入的数据


1、子窗体


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using DevExpress.XtraEditors;


namespace DevControl

{

public partial class FEdit : DevExpress.XtraEditors.XtraForm

{

public FEdit()

{

InitializeComponent();

}


private void btnOk_Click(object sender, EventArgs e)

{

if (this.showDialogHandler!=null)

{

this.showDialogHandler(this.txtData.Text);//给委托参数赋值

}

this.Dispose();//释放窗体

}


private Action<object> showDialogHandler;//定义一个委托,它有一个参数


public void ShowDialog(Action<object> showDialogHandler)

{

this.showDialogHandler = showDialogHandler;

this.Show();

}


}

}


2、父窗体

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;


namespace DevControl

{

public partial class View : Form

{

public View()

{

InitializeComponent();

}


private void barButtonItem4_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)

{

FEdit edit = new FEdit();

edit.ShowDialog(new Action<object>((obj) =>

{

var result = (string)obj;

this.txtDate.Text = result;

} ));

}

}

}

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言