我希望我能够清楚地解释清楚.我有我的主表单(A),它使用form.Show()打开1个子表单(B),使用form.Show()打开第二个子表单(C).现在我希望子窗体B使用form.ShowDialog()打开一个窗体(D).当我这样做时,它会阻止形式A和C形式.有没有办法打开一个模态对话框,只有它阻止打开它的表单?
WPF的Window.ShowDialog
方法返回一个可以为空的布尔值.那样做CommonDialog.ShowDialog
.
现在,我理解这些将返回false的情况(用户单击取消或按下Esc),以及何时返回true(代码集Window.DialogResult
为true,可能是为了响应OK单击).但是null?
我的第一个想法是单击标题栏的"关闭"按钮可能会返回null.但文档说明(我通过测试确认)标题栏关闭按钮被视为取消.
那么什么时候会Window.ShowDialog
或者CommonDialog.ShowDialog
永远返回null?
平台:QT,Windows XP
我是Qt的新手.我想显示另一个窗口(如何将其作为对话框打开)mainwindow
.我做了" add New Item ->Qt Designer Form Class
",命名它说MyWindow
.但如何证明这MyWindow
从mainwindow
?
我正在通过showDialog
/ dismissDialog
/ 管理对话框removeDialog
.
我想要:
以堆栈的形式显示几个对话框:
a)使用显示第一个对话框 showDialog(DIALOG_TYPE)
b)下一个对话框显示在现有对话框的顶部
现在我只能显示第一个对话框showDialog
,然后忽略下一个对话框.
显示上一个对话框
a)使用显示第一个对话框 showDialog(DIALOG_TYPE)
b)应用程序检查是否显示对话框,关闭对话框(如果显示)并打开新对话框.
有没有可能实现上述解决方案之一?
我正在使用Window.ShowDialog()
在我的WPF(MVVM)应用程序中打开一个模态窗口,但它允许我使用Windows任务栏(Windows 7)导航到其他窗口.
考虑一下:我在我的应用程序中打开了3个非模态窗口.现在其中一个打开一个模态窗口使用Window.ShowDialog()
.我也设置Application.MainWindow
为模态窗口的所有者.这是因为我使用MVVM消息传递并且消息处理程序打开一个新窗口是集中的App.xaml.cs
.窗口打开模态 - 没有问题.但是,Windows 7允许我从任务栏切换到其他应用程序窗口.这导致模态窗口落在另一个窗口后面的情况,我不希望这样.
只要我打开模态,我就无法在其他窗口上做任何事情,但如果模态窗口始终保持在顶部,只要打开它就会很好.有没有办法在模态打开时禁用任务栏切换?仅供参考 - 从应用程序启动的所有打开的窗口在任务栏上显示为单独的条目.
提前致谢!
我有一个对话框,我希望在单击确定按钮时阻止关闭,但它会返回,即使AcceptButton属性设置为none而不是我的OK按钮.什么是阻止它关闭的最佳方法?
我认为这是WPF框架中的一个错误,没有进入我的程序的深度,为什么我正在做我正在做的事情,我写了一个简单的测试应用程序来证明我的理论.
这个问题可以确认吗?在将应用程序放入其运行循环之前,要执行的一系列对话框有哪些可能的解决方法?
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
namespace ShowDialogWindow
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Window testWindow = new Window();
testWindow.ShowDialog();
testWindow.Close();
// THE CODE BELOW WILL NOT SHOW THE NEXT WINDOW
Window testWindow2 = new Window();
testWindow2.ShowDialog();
testWindow2.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当然,我可以改变我的设计,以适应这种行为.我试图做的事情非常简单.
我有我的派生MyApplication
从Application
.在此Main()
,我启动了一系列启动检查,例如,许可证信息,启动画面,连接和配置检查等.当我清楚的时候,我打电话给你MyApplicatiom.Run(MyMainForm)
.
此设计基于一个正常的Windows应用程序,它可以正常工作.
非常感谢你的帮助,我会记得ShowDialog() …
我是WPF的新手,所以这可能是一个非常简单的问题.我使用ShowDialog()打开一个对话窗口.然后,如果我点击另一个全屏或只覆盖我的对话框的窗口,则很难返回到对话框.任务栏中显示的图标将我带回主WPF窗口,但对话框仍隐藏在另一个窗口后面.我要么必须将阻止窗口或Alt-Tab最小化回我的应用程序(它将显示对话框但隐藏主窗口).
窗口的定义如下:
<Window x:Class="MyProject.MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ResizeMode="CanResizeWithGrip"
ShowInTaskbar="False"
WindowStartupLocation="CenterOwner"
Width="750"
Height="565"
Title="MyWindow">
Run Code Online (Sandbox Code Playgroud)
我打开它像:
var dlg = new MyWindow();
if (dlg.ShowDialog() != true)
return;
Run Code Online (Sandbox Code Playgroud) 哪个是显示模态对话框的更好方法?
form1 frm=new form1();
frm.showDialog()
Run Code Online (Sandbox Code Playgroud)
要么
(new form1()).showDialog();
Run Code Online (Sandbox Code Playgroud) 当我的程序的自动生成代码启动时,它会调用
Application.Run(new Form1());
Run Code Online (Sandbox Code Playgroud)
并启动Form1.我有另一种形式,我想同时切换到并关闭Form1.问题是如果我在使用"Form.ShowDialog()"调用另一个表单之前在Form1中使用"this.Close()",则程序结束.如果我把它放在ShowDialog之后,那么它会保持在后台,直到我关闭Form2,此时程序结束.
如何在同时关闭当前打开的帧的同时生成Frame2的副本?
编辑:我也试过用.Show()调用Frame2,但新框架立即关闭.