- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 C# 应用程序有两种形式。主窗体将其 ControlBox 设置为 false,然后创建第二个窗体,如下所示:
this.ControlBox = false;
new Form2().Show();
第二种形式能够最小化和最大化。我需要主窗体 WindowState 属性能够在窗口最小化 或返回其正常 状态时从子窗体进行设置。
我遇到的问题是当我尝试最小化子窗口时程序崩溃。
这是我的代码:
private void Form2_SizeChanged(object sender, EventArgs e)
{
if(this.WindowState != FormWindowState.Maximized)
this.Parent.WindowState = this.WindowState;
}
我该如何解决这个问题?
最佳答案
您的问题是 Form2
Parent
属性为 null,调用 Show()
方法实际上并未设置 Parent
所显示表单的属性(在调试器中检查)。最简单的解决方法是通过 Form2
(称为 Form
)的构造函数传递 Form1
(调用 Form
)引用然后使用该引用来设置 WindowState
属性。像这样:
public partial class Form2 : Form
{
Form1 form1;
public Form2(Form1 frm)
{
InitializeComponent();
form1 = frm;
this.SizeChanged +=Form2_SizeChanged;
}
private void Form2_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState != FormWindowState.Maximized)
form1.WindowState = this.WindowState;
}
}
与 Form1 的代码相比,您可以更改为:
this.ControlBox = false;
Form2 frm = new Form2(this);
frm.Show();
关于c# - 如何从子窗体设置父窗体 WindowState 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16203839/
一段时间以来,我一直试图让我的 WPF 应用程序跨越多个监视器,并且几乎可以正常工作。 当我设置以下行时,问题似乎出现了: win1.WindowState = WindowState.Maximiz
有没有一种简单的方法可以将最小化的形式恢复到以前的状态,正常或最大化?我期待与单击任务栏(或右键单击并选择恢复)相同的功能。 到目前为止,我有这个,但如果表单之前最大化,它仍然会作为普通窗口返回。 i
在我的应用程序中,用户可以导航到一个表单到另一个表单等等。所以我想维护每个窗体的 WindowState。我的意思是,如果 form1 处于普通模式,那么下一个 form2 应该以普通模式打开,如果
我的 C# 应用程序有两种形式。主窗体将其 ControlBox 设置为 false,然后创建第二个窗体,如下所示: this.ControlBox = false; new Form2().Show
以下面的代码为例; if (Convert.ToString(frm.WindowState) == "Minimized") Layout.WindowState = "Ma
在 WPF 中,有没有办法在触发器中检查窗口的“WindowState”属性?我试过使用“0”、“Minimized”和“WindowState.Minimized”的值。 示例:
我读到 Load 事件应该在创建窗口句柄之后触发,但之前窗口实际上变得可见。在大多数情况下,这似乎是真的。但是,我发现当我创建一个 WindowState 属性设置为 FormWindowState.
我创建了一个表单可以继承的类,它处理表单的位置、大小和状态。而且效果很好。除了一件事: 当您在与主屏幕不同的屏幕上最大化应用程序时,位置和大小(在您最大化之前)会正确存储,但当它最大化时(根据其先前的
我为我的 mdi child 制作了一个自定义边框。 Mdi 子窗体属性: FormBorderStyle = 无 控制框 = 假 文字 = "" WindowState = 最大化 首先,当我将 W
如何从桌面快捷方式控制 WPF 主窗口的初始 WindowState(正常、最小化、最大化)? 快捷方式属性对话框的“运行:”组合框让我在“普通窗口”、“最小化”和“最大化”之间进行选择。但是 WPF
作为我的应用程序设置的一部分,我将最后一个位置存储在窗口的工作区中,它是 WindowState。我可以成功恢复位置,即使在另一个屏幕上也是如此,但有一件事我不能......在非主屏幕上最大化应用程序
如何在窗口状态=最大化的 mdi 容器窗体中显示子窗体? 当我在加载子窗体时将这些代码行放在下面(通过单击主窗体的菜单项),子窗体会失去其父位置并且不会显示在其父窗体中。 private void m
本文整理了Java中org.gatein.pc.api.WindowState.create()方法的一些代码示例,展示了WindowState.create()的具体用法。这些代码示例主要来源于Gi
本文整理了Java中org.gatein.pc.api.WindowState.toString()方法的一些代码示例,展示了WindowState.toString()的具体用法。这些代码示例主要来
我正在使用 struts portlet 桥开发一个基于 struts 1.2.9 的 JSR-286 兼容 portlet(由于历史原因,我们希望重用大量现有代码)。我想要一些链接来更改 Windo
protected void btnSelectCommittee_Click(object sender, EventArgs e) { this.WebDialogWind
所以我想立即触发一个函数,因为这部分程序依赖于速度,当我的主窗体中的窗口状态发生变化时。我需要它是这样的: private void goButton_Click(object sender, Eve
当我将窗口的默认属性设置为: SizeToContent="WidthAndHeight" 和 WindowState="Minimized", 窗口右侧会有一个黑色部分。 要重现它,请尝试创建一个新
我在 Liferay Portal 中构建了一个 portlet并使用过Ajax。当我打开没有 www 的网站时,一切都是正确的,但是当我使用 www 时,Ajax 请求 URL 没有 www,然后响
我遇到了以下问题,但我没有找到解决方案。 我想实现一个没有顶栏的 Winform,如果可能的话,没有边框。我尝试了几件事都没有成功,下面的方法可以完美地解决这个问题: this.Tex
我是一名优秀的程序员,十分优秀!