zoukankan      html  css  js  c++  java
  • [转] c#有关winform的两个代码片段(多线程操作窗体控件与窗体淡入淡出效果)

     

     

     

    1.多线程操作窗体控件

    delegate void SetTextCallback(string text);

              private void SetText(string text)

              {

                  // InvokeRequired required compares the thread ID of the

                  // calling thread to the thread ID of the creating thread.

                  // If these threads are different, it returns true.

                  if (this.textBox1.InvokeRequired)

                  {

                      SetTextCallback d = new SetTextCallback(SetText);

                      this.Invoke(d, new object[] { text });

                  }

                  else

                  {

                      this.textBox1.Text = text;

                  }

              }

     

    SetText(time.ToString());

    2.

    C#实现窗体淡入淡出效果的几种方法(转)

    1.

        private     void     Form1_Load(object     sender,     System.EventArgs     e)  

        for(double     d=0.01;     d<     1;     d+=0.02)  

        {  

        System.Threading.Thread.Sleep(1);  

        Application.DoEvents();  

        this.Opacity=d;  

        this.Refresh();  

        }

     

     

    2.

     

        private     void     timer1_Tick(object     sender,     System.EventArgs     e)  

        {  

        this.Opacity     =     WinShow     ;  

        WinShow     +=     0.1     ;  

        if(WinShow     >=1     )  

        {  

        timer1.Dispose     ();  

        }  

        }

     

     

    3.

     

    用循环或计时器,  

        frmForm     myForm=new     frmForm()  

        frmForm.Opacity=0;  

        frmForm.show();  

        for(int     i=0;i<100;i++)  

        {  

        Application.DoEvents()  

        frmForm.Opacity=i/100;  

        }

     

     

    4.

     

        #region       ********     窗体淡入效果函数         ********  

        private     double     WinShow     =     0;//用于窗口淡入效果的变量  

       

        private     void     FormShow(System.Windows.Forms.Form     Curfrm)  

        {  

        Curfrm.Opacity     =     WinShow     ;   

        WinShow     +=     0.01;  

        if(WinShow     ==     1)  

        {  

        Curfrm.timerShow.Stop     ();  

        }  

        }  

       

        #endregion  

       

        #region       ********     窗体淡入效果函数调用示例         ********  

        //实现窗口的淡入效果  

        private     void     timerShow_Tick(object     sender,     System.EventArgs     e)  

        {  

        //timerShow,这是一个timer控件名称;把timerShow.interval=100就可以了。  

        FormShow(this);  

        }  

        #endregion

     

    5.

     

    using System.Runtime.InteropServices;

     

     

    public class Win32

             {

                 public const Int32 AW_HOR_POSITIVE = 0x00000001;     // 从左到右打开窗口

                 public const Int32 AW_HOR_NEGATIVE = 0x00000002;     // 从右到左打开窗口

                 public const Int32 AW_VER_POSITIVE = 0x00000004;     // 从上到下打开窗口

                 public const Int32 AW_VER_NEGATIVE = 0x00000008;     // 从下到上打开窗口

                 public const Int32 AW_CENTER = 0x00000010;

                 public const Int32 AW_HIDE = 0x00010000;         // 在窗体卸载时若想使用本函数就得加上此常量

                 public const Int32 AW_ACTIVATE = 0x00020000;     //在窗体通过本函数打开后,默认情况下会失去焦点,除非加上本常量

                 public const Int32 AW_SLIDE = 0x00040000;

                 public const Int32 AW_BLEND = 0x00080000;        // 淡入淡出效果

                 [DllImport("user32.dll", CharSet = CharSet.Auto)]

                public static extern bool AnimateWindow(

                 IntPtr hwnd,   //   handle   to   window   

                 int dwTime,   //   duration   of   animation   

                 int dwFlags   //   animation   type   

                 );

             }

     

     

     

    /*淡入窗体*/

     

    private void Form_Load(object sender, EventArgs e)

    {

             Win32.AnimateWindow(this.Handle, 2000,   Win32.AW_BLEND);

    }

     

     

     

    /*淡出窗体*/

     

    private void Form_FormClosing(object sender, FormClosingEventArgs e)

    {

         Win32.AnimateWindow(this.Handle, 2000, Win32.AW_SLIDE | Win32.AW_HIDE | Win32.AW_BLEND);

    }

  • 相关阅读:
    iTerm2 颜色配置
    IOS_问题: Xcode8 安装KSImageName插件, 编代码就崩了
    IOS_设置启动图片若干问题
    Android 多国语言
    Reveal 配置与使用
    自定义代码块
    Android 动画
    SQL
    dialog
    2016-1-18UIlabel学习,正则表达式
  • 原文地址:https://www.cnblogs.com/DBtwoer/p/3048409.html
Copyright © 2011-2022 走看看