user32动画窗口函数没有滑动正确的窗体
本文关键字:窗体 动画 窗口函数 user32 | 更新日期: 2023-09-27 18:25:22
我正在尝试将窗口幻灯片添加到我的一个子窗体中。我将简要介绍一下这个小部分在我的应用程序中的作用。
用户在一系列IP地址中键入。应用程序执行所有ping并以新的形式(动态)显示结果。
以下是我希望它的工作方式:如果用户运行一次ping,幻灯片动画将不会发生任何事情。但是,如果用户单击结果表单上的"重试"控件,新的结果窗口将从旧结果表单的右侧滑出
在结果表单(命名为:Ping_form)上,我将以下内容添加到加载事件中:
[DllImport("user32")]
static extern bool AnimateWindow(IntPtr hwnd, int time, int flags);
//Constants
const int AW_SLIDE = 0X40000;
const int AW_HOR_POSITIVE = 0X1;
const int AW_HOR_NEGATIVE = 0X2;
const int AW_BLEND = 0X80000;
void ping_Form_Load(object sender, EventArgs e)
{
bool is_Open = false;
FormCollection fc = Application.OpenForms;
foreach (Form f in fc)
{
if (f.Name == "PSE")
is_Open = true;
}
if (is_Open == false)
return;
//Load the Form At Position of Main Form
int WidthOfMain = Application.OpenForms["PSE"].Width;
int HeightofMain = Application.OpenForms["PSE"].Height;
int LocationMainX = Application.OpenForms["PSE"].Location.X;
int locationMainy = Application.OpenForms["PSE"].Location.Y;
//Set the Location
this.Location = new Point(LocationMainX + WidthOfMain, locationMainy + 10);
//Animate form
AnimateWindow(this.Handle, 500, AW_SLIDE | AW_HOR_POSITIVE);
}
但当我运行ping方法时,会创建一个空白表单并滑出,但结果表单看起来很正常。
在这方面,任何导演或建议都会很棒。非常感谢!
尝试调用此函数。显示();调用AnimateWindow之后。