子窗体最大化的时候,
MDI子窗体切换的时候会闪一下(切换的窗体最大化,之前的窗体normal化)
可不可以避免?
MDI子窗体切换的时候会闪一下(切换的窗体最大化,之前的窗体normal化)
可不可以避免?
解决方案 »
- OpenProcess 返回值是 0
- DataTable序列化和反序列化问题求教.
- 如何解决多个Form同步移动,同步关闭的问题?(高分求助,热心人请进!!)
- 在C# dll中如何获得主程序的实例对象
- 时间交叉的问题
- 愚翁大哥,这个问题困扰我一个下午了
- asp.net应用程序--本地调试通过,而一到服务器上就出错!!!
- 我在网页中调用百度影音,URL怎么写成本地的视频???活着怎么把视频地址转换成百度播放的格式,如果有工具,求具体的下载地址??
- c#连接SAP调用rfc函数问题?
- 凡是贴主发起的含有人身攻击性的帖子,必删之.
- VS2005可视化数据集编辑向导能否在SQL语句中指定参数?
- 多线程下载在 dataGridView显示的问题?
Form.doubleBuffer = true;
不知道你是否作过MDIMDI默认就是这样的,窗口最大化的时候,就是当前窗口最大化,其他窗口状态不变
只有选择某一个窗口的时候,这个窗口才最大化,之前的窗口还会自动normal化
微软真是可恶,自己用这好的东西,却把这等残次品API和类库给外人用
{
IntPtr zero = IntPtr.Zero;
if (this.GetState(0x800))
{
throw new ObjectDisposedException(base.GetType().Name);
}
this.SetState(0x40000, true);
if (Application.UseVisualStyles)
{
zero = UnsafeNativeMethods.ThemingScope.Activate();
}
Rectangle bounds = this.Bounds;
try
{
System.Windows.Forms.CreateParams createParams = this.CreateParams;
this.SetState(0x40000000, (createParams.ExStyle & 0x400000) != 0);
if (this.parent != null)
{
Rectangle clientRectangle = this.parent.ClientRectangle;
if (!clientRectangle.IsEmpty)
{
if (createParams.X != -2147483648)
{
createParams.X -= clientRectangle.X;
}
if (createParams.Y != -2147483648)
{
createParams.Y -= clientRectangle.Y;
}
}
}
if ((createParams.Parent == IntPtr.Zero) && ((createParams.Style & 0x40000000) != 0))
{
Application.ParkHandle(createParams);
}
this.window.CreateHandle(createParams);
this.UpdateReflectParent(true);
}
finally
{
this.SetState(0x40000, false);
UnsafeNativeMethods.ThemingScope.Deactivate(zero);
}
if (this.Bounds != bounds)
{
LayoutTransaction.DoLayout(this.ParentInternal, this, PropertyNames.Bounds);
}
}
微软真是可恶,自己用这好的东西,却把这等残次品API和类库给外人用。
是的,这个就是微软的害处啊。
让LZ失望了,前两天心情十分不好,所以即使有来CSDN也不想发帖子!至于你出现的问题在我看来其实很简单,每个子窗体被最激活时是NORMAL模式;如果有多个子窗体,那么所有子窗体起始(深蓝色的边框)位置从父窗体中从上到下呈对角线向下排,因为在切换子窗体时系统都会重绘子窗体界面,所以在SHOW子窗体时把只要设置好子窗体的SHOW的起始位置就好了!
//设置运行窗体的起始位置
childrenWindow.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
//设置起始位置的具体位置,这个参数可以根据实际情况设置!例如如果工具有几排,那么Y参数就要对应相减,
childrenWindow.Location = new Point(-3, -30);
//最大化显示
childrenWindow.WindowState = System.Windows.Forms.FormWindowState.Maximized;
childrenWindow.Show();
起作用也是两三行代码了,如果不满意别骂我^_^...
yuwenge 的方法在全屏的时候也ok,但是父窗口normal的时候,解锁会造成整个屏幕都闪一下
有没有只是锁定父窗口的方法呢?谢谢各位