我有一个主窗口,用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
我应该把主人放在哪里?
答案 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;
之后就可以了。
如果我错了,请纠正我。