多个Showdialog

时间:2015-06-22 04:01:57

标签: c# .net wpf windows

我有一个主窗口,用var args = { monthStart: 'ms', yearStart: 'ys', monthEnd: 'me', yearEnd: 'ye' }; function createItemTimeOrder(item, args) { var monthStart = item[args.monthStart] || 0, yearStart = item[args.yearStart] || 0, monthEnd = item[args.monthEnd] || 0, yearEnd = item[args.yearEnd] || 0; // present if end month and end year are empty (monthEnd && yearEnd) || (monthEnd = 12, yearEnd = 3000); // weights yearEnd > monthEnd > yearStart > monthStart item._timeorder = monthStart + (yearStart * 2) + ((monthEnd + yearEnd) * 2) + (yearEnd * 4); } //add _timeorder proptery jobs.forEach(function (job) { createItemTimeOrder(job, args); }); // sortby timer order in in reverse chronological order jobs.sort(function (job1, job2) { return job2._timeorder - job1._timeorder; }); 调用另一个窗口,我们称之为窗口A.窗口A调用另一个窗口ShowDialog(),我们称之为窗口B.

每当使用ShowDialog()关闭窗口B时,我希望显示窗口A,而不是主窗口。

我该怎么做?我已尝试使用Close()this.Owner等,但这些都不起作用。

注意:我正在使用WPF

这是我在主窗口的代码:

this.Focus

WindowsA WA = new WindowsA(); WA.showDialog();,我打电话给另一个窗口WindowsA

WindowsB

来自WindowsB WB = new WindowsB(); WB.showDialog();,按下按钮关闭:

WindowsB

我应该把主人放在哪里?

2 个答案:

答案 0 :(得分:1)

当您为窗口b执行showDialog时,您应该将所有者设置为窗口A,然后窗口A打开的任何内容将在窗口A关闭时返回。

像这样:WA.ShowDialog(this);

这将使this成为WA的所有者。

有关详细信息,请参见此处:www.stackoverflow.com/a/2045671/4714970

答案 1 :(得分:0)

对不起,我刚想通了。

在WA.ShowDialog()之前,我只设置了WA.Owner = this;

之后就可以了。

如果我错了,请纠正我。