在页面定义了一个按钮事件,点击按钮出现新的窗体,在新窗体中选择需要的数据,然后将选中的数据传回原页面。
1、定义按钮事件
在姓名的显示框上绑定单击事件(姓名框为Dev中的ButtonEdit控件)
单击事件代码如下:
private void buttonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
Boolean flag = false;
FormCollection formCollection = Application.OpenForms;//获取窗体集合
FrmSelectName frmSelectName = new FrmSelectName();//新建窗体
//遍历
foreach (Form name in formCollection)
{
if (name.Name == "FrmSelectName")
{
flag = true;
name.Activate();
}
}
if (flag == false)//窗体不存在则使创建
{
frmSelectName.StartPosition = FormStartPosition.Manual;
Point pt = MousePosition;//获取屏幕鼠标坐标
frmSelectName.Left = pt.X - 90;
frmSelectName.Top = pt.Y + 13;
//frmSelectName.Show();//这里不能使用show方法,因为后面会调用
}
Employee employee = frmSelectName.GetEmployee();//调用新窗口中的方法
if (employee == null)
{
}
else
{
//为窗口的文本框赋值
buttonEdit1.Text = employee.CnName;
textCode.Text = employee.Code;
textDept.Text = employee.DepartmentId.ToString();
}
}
2、在新增的窗体中(GridControl控件)定义行点击事件,
Employee employee = new Employee();
//行点击事件
private void bandedGridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
Employee dataRow = (Employee)bandedGridView1.GetFocusedRow();
employee = dataRow;
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
//返回数据
public Employee GetEmployee()
{
DialogResult dr = this.ShowDialog();//在这里显示窗体
if (DialogResult == System.Windows.Forms.DialogResult.OK)
return employee;
else
return null;
}
这样就实现了将新窗口中的值传给原窗口,且新窗口自动关闭