日期:2014-05-18  浏览次数:20818 次

winForm如何在右下角弹出窗体????

弹出的窗体在最上面,并且不获得焦点 ,就是不影响其他节面的操作

------解决方案--------------------
winFrom右下角弹出消息,自动消失
------解决方案--------------------
C# code
这个是可以做的。。。


  /// <summary>
    /// 枚举,描述消息窗口加载的形式
    /// </summary>
    public enum LoadMode
    {
        /// <summary>
        /// 警告
        /// </summary>
        Warning,

        /// <summary>
        /// 错误
        /// </summary>
        Error,

        /// <summary>
        /// 提示
        /// </summary>
        Prompt
    }

    /// <summary>
    /// 消息提示窗口
    /// </summary>
    public partial class FormMessageBox : Form
    {
        /// <summary>
        /// 构造方法
        /// </summary>
        public FormMessageBox()
        {
            InitializeComponent();
        }


        #region ***********************字 段***********************

        /// <summary>
        /// 窗体加载模式
        /// </summary>
        private static LoadMode FormMode = LoadMode.Prompt;

        /// <summary>
        /// 显示的消息正文
        /// </summary>
        private static string ShowMessage = null;

        /// <summary>
        /// 关闭窗口的定时器
        /// </summary>
        private Timer Timer_Close = new Timer();


        [DllImportAttribute("user32.dll")]
        private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);   // 该函数可以实现窗体的动画效果

        public const Int32 AW_HOR_POSITIVE = 0x00000001;   // 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略 
        public const Int32 AW_HOR_NEGATIVE = 0x00000002;   // 自右向左显示窗口。当使用了 AW_CENTER 标志时该标志被忽略

        public const Int32 AW_VER_POSITIVE = 0x00000004;   // 自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略
        public const Int32 AW_VER_NEGATIVE = 0x00000008;   // 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略

        public const Int32 AW_CENTER = 0x00000010;         // 若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展
        public const Int32 AW_HIDE = 0x00010000;           // 隐藏窗口,缺省则显示窗口
        public const Int32 AW_ACTIVATE = 0x00020000;       // 激活窗口。在使用了AW_HIDE标志后不要使用这个标志
        public const Int32 AW_SLIDE = 0x00040000;          // 使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略
        public const Int32 AW_BLEND = 0x00080000;          // 使用淡入效果。只有当hWnd为顶层窗口的时候才可以使用此标志

        #endregion*************************************************


        #region ***********************方 法***********************

        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="loadMode">加载模式</param>
        /// <param name="message">消息正文</param>

        public static void Show(LoadMode loadMode, string message)
        {
            FormMode = loadMode;
            ShowMessage = message;

            FormMessageBox box = new FormMessageBox();
            box.Show();
        }



        #endregion*************************************************


        #region ***********************事 件***********************

        /// <summary>
        /// 窗体加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FormMessageBox_Load(object sender, EventArgs e)
        {
            this.lblTitle.Text = "提示";
            if (FormMode == LoadMode.Error)
            {
                this.lblTitle.Text = "错误";
                this.plShow.BackgroundImage = global::dataSource.Properties.Resources.error;    // 更换背景
            }
            else if (FormMode == LoadMode.Warning)
            {
                this.lblTitle.Text = "警告";
                this.plShow.BackgroundImage = global::dataSource.Properties.Resources.warning;  // 更换背景
            }
            else