- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用以下代码为窗口设置动画。让我稍微解释一下我的程序的视觉结构。我有一个 FlowLayoutPanel 位于我的 Form1 顶部,还有许多 GroupBox 对象位于 FlowLayoutPanel 顶部。最后,我在 GroupBox 的顶部有一个 Button 和一个不可见的 RichTextBox 对象。
例如:Form1->FlowLayoutPanel->GroupBox->Button 和 RichTextBox(不可见)
我想要实现的是,当我单击 Button 对象时,我希望我的 RichTextBox 向下滑动。我通过在我的主窗体上创建一个按钮和一个 RichTextBox 来尝试它,它工作得很好。然而,当我在运行时使用 GroupBox 控件尝试同样的事情时,我的 Animate 函数抛出一个未知的异常。
class Effects
{
public enum Effect { Roll, Slide, Center, Blend }
public static void Animate(Control ctl, Effect effect, int msec, int angle)
{
int flags = effmap[(int)effect];
if (ctl.Visible) { flags |= 0x10000; angle += 180; }
else
{
if (ctl.TopLevelControl == ctl) flags |= 0x20000;
else if (effect == Effect.Blend) throw new ArgumentException();
}
flags |= dirmap[(angle % 360) / 45];
bool ok = AnimateWindow(ctl.Handle, msec, flags);
if (!ok) throw new Exception("Animation failed");
ctl.Visible = !ctl.Visible;
}
private static int[] dirmap = { 1, 5, 4, 6, 2, 10, 8, 9 };
private static int[] effmap = { 0, 0x40000, 0x10, 0x80000 };
[DllImport("user32.dll")]
public static extern bool AnimateWindow(IntPtr handle, int msec, int flags);
}
我还注意到,当我使用 RichTextBox 的父级调用 Animate 函数时例如 Effects.Animate(textBox.parent, Effects.Effect.Slide, 150, 90);
动画没有任何问题。我不知道为什么它适用于父对象而不是实际对象。例如 Effects.Animate(textBox, Effects.Effect.Slide, 150, 90);
最佳答案
我测试了你的代码,它甚至可以在文本框上工作(也可以在 richtextbox 上工作,但它变成黑色,只有我输入的区域恢复到原来的颜色)。
确保在调用效果函数之前隐藏要运行此代码的控件。例如,我调用了 Effects.Animate(textBox1, Effects.Effect.Center, 1000, 120);并且 textBox1.Visible 在设计器中设置为 false。
维杰
关于C# WinForms AnimateWindow 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6669496/
我正在使用以下代码为窗口设置动画。让我稍微解释一下我的程序的视觉结构。我有一个 FlowLayoutPanel 位于我的 Form1 顶部,还有许多 GroupBox 对象位于 FlowLayoutP
我正在尝试制作 WinAPI C++ 程序,但我遇到了以下错误: error: 'AW_SHOW' was not declared in this scope error: 'AW_HIDE' wa
我有一个面板(底部对齐)和一些控件(客户端对齐)。 要为我使用的面板设置动画: AnimateWindow(Panel.Handle, 1000, aw_hide or AW_SLIDE OR AW_
我正在使用 ShowWindow函数隐藏和显示外部进程的主窗口。现在,我想使用 AnimateWindow在我显示或隐藏窗口时调用 ShowWindow 以动画显示该窗口之前的函数,但是,正如 MSD
您好,我在Delphi XE2中的AnimateWindow功能有问题,问题是当我使用XE2在Windows外观中提供的皮肤时,当使用任何皮肤并与AnimateWindow结合时,程序混合了正常的设计
我正在使用 AnimateWindow API 来显示或隐藏带有幻灯片动画的 Form。问题是,如果表单包含一个 RichTextBox 控件,它就不会正确显示该控件。它是透明的,不显示任何文本。 动
我正在尝试调用 AnimateWindow动画显示和隐藏 WinForms 窗口。 这是 the win32 translation 的副本: private static class NativeM
我是一名优秀的程序员,十分优秀!