首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#和模态窗口

C#和模态窗口
EN

Stack Overflow用户
提问于 2012-08-30 00:01:29
回答 4查看 7.2K关注 0票数 0

我有以下情况:主窗口中的一些数据已经完成,它也是一个按钮,打开一个新的模式窗口,在那里您选择产品和产品的范围,我单击确定,并移动到下一个屏幕,在那里选择数量,价格,并在批准后,我单击确定的数据,我想有权访问在主窗口的模式窗口中选择的数据,因为它可以使用C #?

EN

回答 4

Stack Overflow用户

发布于 2012-08-30 00:08:25

你可以做一些类似这样的事情:

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
{
    Form2 firstPopup = new Form2();
    firstPopup.ShowDialog();
    var someData = firstPopup.SomeValue;

    Form2 secondPopup = new Form2();
    secondPopup.ShowDialog();
    var someOtherData = secondPopup.SomeValue;

    doSomeStuff(someData, someOtherData);
}

在本例中,SomeValue是表单上的一个属性,具有一个公共的getter和一个私有的setter。它的值将在窗体关闭之前的某个时间设置。每个表单可以有任意数量的此类属性,也可以有任意数量的表单。

票数 0
EN

Stack Overflow用户

发布于 2012-08-30 00:10:09

这类似于“打开”、“另存为”和“文件夹”对话框的工作方式。以打开文件对话框为例,单击确定后,即可访问所选文件

建议:

在你的模式窗口中,设置一些公共属性来保存你的数据。设置OK按钮以将表单DialogResult设置为OK,在父表单中,您可以执行以下测试(在本例中,DataModel是您试图访问的数据)

代码语言:javascript
复制
if(modalWindow.DialogResult == DialogResult.OK)
{
    this.DataModel = modalWindow.DataModel;
}

以下是有关如何使用DialogResult http://msdn.microsoft.com/en-us/library/system.windows.forms.form.dialogresult.aspx的一些信息

票数 0
EN

Stack Overflow用户

发布于 2012-08-30 00:11:07

通常,对于模态窗口,您遵循的模式与OpenFileDialog使用的模式类似,您可以执行以下操作:

代码语言:javascript
复制
public class MyDialog : Form
{
  public MyResult Result { get { /* code elided */ } }
}

也就是说,除了拥有模式表单的代码之外-您还公开了一个给定类型的公共Result属性,该属性可以提供在该表单的UI上输入的数据(这比在表单上公开控件要好,因为这意味着您可以自由地更改所有这些控件,而不必重新编码依赖于它的任何其他表单)。

如果单击OkYes (无论是什么确认按钮)按钮,您要确保Result可用且有效。然后,确保相应地设置表单的DialogResult (也可以为每个按钮分配一个-例如,将DialogResult.Cancel分配给cancel按钮)。

然后,当你打开你的表单时,你可以这样做:

代码语言:javascript
复制
var form1 = new MyDialog();

if(form1.ShowDialog() != DialogResult.OK)
  return; //abort the operation, the user cancelled/closed the first modal

MyResult form1Data = form1.Result;  //get your actual data from that modal form.
//...and then on with your second modal

因此,您可以在进行过程中从模型中收集数据,如果有任何数据被取消,则中止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12182021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档