我想用计时器控制窗口位置及高宽来自己实现动画,实现那种关闭时收缩的效果,但是发现当调用this.close()时会有一个黑线框一闪而过,很难看,有没有人知道这个黑线框怎么来的?以及怎么把它去掉?
解决方案 »
- WPF XAML文件基础问题
- 是高手的进来看一下。解决了我把所有分都给他
- 通过web Service得到dataset ,我想把DataSet中的内容全部放到数据库中。
- 关于进程的小问题
- C# form 用什么方法打开一个FORM窗口,和关闭一个窗口?
- [CAB文件的问题,100分] 一个*.cab文件中一旦含有文件夹结构,则解压会失败,怎么办?
- C#中如何取得二级域名?
- 怎么可以将5274格式化为5,274? C#里面有这样的函数吗?类似于vbscript中的formatnumber?
- 请问C#教程哪里能下载?
- 刚开始学习C#,哪位推荐几本好书?Wrox:C# 高级编程好吗?
- 怎么利用循环读取数据,只有偶数行读取呢?
- asp.net mvc高手
或者收缩到一定小时,把窗体的标题栏设置None,即FormBorderStype=None看看
FormBorderStype=None,本来窗口就是无边的窗口
private void timer1_Tick(object sender, EventArgs e)
{
this.Width -= 10;
this.Height -= 10; if (this.Width < 50 || this.Height < 50)
{
this.Width = 0;
this.Height = 0;
this.Close();
} }
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;namespace Utility
{
/// <summary>
/// Base form class that provides fading/sliding effects on open/close of the form.
/// </summary>
public abstract class FadeForm : Form
{
#region Win32 const int AW_HIDE = 0X10000;
const int AW_ACTIVATE = 0X20000;
const int AW_HOR_POSITIVE = 0X1;
const int AW_HOR_NEGATIVE = 0X2;
const int AW_SLIDE = 0X40000;
const int AW_BLEND = 0X80000; [DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int AnimateWindow
(IntPtr hwand, int dwTime, int dwFlags); #endregion #region Variables private bool _UseSlideAnimation; #endregion #region Constructor /// <summary>
/// Initializes a new instance of the <see cref="FadeForm"/> class.
/// </summary>
public FadeForm() : this(false) { }
/// <summary>
/// Initializes a new instance of the <see cref="FadeForm"/> class.
/// </summary>
/// <param name="useSlideAnimation">if set to <c>true</c> [use slide animation].</param>
public FadeForm(bool useSlideAnimation)
{
_UseSlideAnimation = useSlideAnimation;
} #endregion #region Overrides /// <summary>
/// Raises the <see cref="E:System.Windows.Forms.Form.Load"/> event.
/// </summary>
/// <param name="e">An <see cref="T:System.EventArgs"/> that contains the event data.</param>
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
AnimateWindow(this.Handle, 1000, AW_ACTIVATE | (_UseSlideAnimation ? AW_HOR_POSITIVE | AW_SLIDE : AW_BLEND));
} /// <summary>
/// Raises the <see cref="E:System.Windows.Forms.Form.Closing"/> event.
/// </summary>
/// <param name="e">A <see cref="T:System.ComponentModel.CancelEventArgs"/> that contains the event data.</param>
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
base.OnClosing(e);
if (e.Cancel == false)
{
AnimateWindow(this.Handle, 1000, AW_HIDE | (_UseSlideAnimation ? AW_HOR_NEGATIVE | AW_SLIDE : AW_BLEND));
}
} #endregion }
}