<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Gradient Waiting Bar Control (C# Source)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/372.aspx</link><pubDate>Wed, 27 Oct 2004 18:11:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:372</guid><dc:creator>PhilipKalogero</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/372.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=372</wfw:commentRss><description>&lt;font style="BACKGROUND-COLOR: #efefef"&gt; &lt;p&gt;Source κώδικας για το πολύ όμορφο και "μοδάτο" Waiting Bar Control που βρήκα κάπου...Source κώδικας C#&lt;br /&gt;&lt;br /&gt;&lt;img src="/images/gradient.jpg" /&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;(αυτό το μπλε είναι, κάτω κάτω, το οποίο κάνει animate)&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font color="#008000" size="2"&gt; &lt;p&gt;//&lt;/p&gt; &lt;p&gt;// This control is Gradient Waiting Bar.&lt;/p&gt; &lt;p&gt;//&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;using&lt;/font&gt;&lt;font size="2"&gt; System;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;using&lt;/font&gt;&lt;font size="2"&gt; System.Windows.Forms;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;using&lt;/font&gt;&lt;font size="2"&gt; System.Drawing;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;using&lt;/font&gt;&lt;font size="2"&gt; System.Drawing.Drawing2D;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;using&lt;/font&gt;&lt;font size="2"&gt; System.Diagnostics;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;namespace&lt;/font&gt;&lt;font size="2"&gt; KDHLib.Controls&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;class&lt;/font&gt;&lt;font size="2"&gt; GradientWaitingBar : System.Windows.Forms.Control&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; GradientWaitingBar()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Set the control styles&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.SetStyle(ControlStyles.AllPaintingInWmPaint, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;);&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.SetStyle(ControlStyles.DoubleBuffer, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;);&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.SetStyle(ControlStyles.SupportsTransparentBackColor, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;);&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.SetStyle(ControlStyles.UserPaint, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;);&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.SetStyle(ControlStyles.ResizeRedraw, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;true&lt;/font&gt;&lt;font size="2"&gt;);&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Set the default size of this control&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Left = 0;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Top = 0;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Width = DEF_WIDTH;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Height = DEF_HEIGHT;&lt;/p&gt; &lt;p&gt;InitializeComponent();&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.m_timer.Enabled = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Enabled;&lt;/p&gt; &lt;p&gt;m_col1 = Color.White;&lt;/p&gt; &lt;p&gt;m_col2 = Color.Blue;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.BackColor = m_col1;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Make a gradient Bitmap&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;MakeBitmapForWaitingBar(); &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; InitializeComponent()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.components = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; System.ComponentModel.Container();&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.m_timer = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; System.Windows.Forms.Timer(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.components);&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.m_timer.Tick += &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; System.EventHandler(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.m_timer_Tick);&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.m_timer.Interval = 10;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;#region&lt;/font&gt;&lt;font size="2"&gt; "Variables"&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;const&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; DEF_WIDTH = 50;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;const&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; DEF_HEIGHT = 18;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; System.Windows.Forms.Timer m_timer;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; System.ComponentModel.IContainer components;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; System.Drawing.Color m_col1, m_col2;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; System.Drawing.Bitmap m_bitmap = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; xloc = 0;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; m_nSpeed = 5;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; SCROLLGRADIENTALIGN m_nScrollway = SCROLLGRADIENTALIGN.HORIZONTAL;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// enum variable of align this control&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;enum&lt;/font&gt;&lt;font size="2"&gt; SCROLLGRADIENTALIGN&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;HORIZONTAL = 0,&lt;/p&gt; &lt;p&gt;VERTICAL&lt;/p&gt; &lt;p&gt;};&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;#endregion&lt;/p&gt; &lt;p&gt;#region&lt;/font&gt;&lt;font size="2"&gt; "Properties"&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// property of timer&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;[System.ComponentModel.Description("Gets or sets the Interval of timer tick count for Speed of GradientWaitingBar"), System.ComponentModel.Category("Behavior")]&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; Interval&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; m_timer.Interval;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;m_timer.Interval = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// property of speed in scrolling.&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;[System.ComponentModel.Description("Gets or sets the speed of gradient for GradientWaitingBar"), System.ComponentModel.Category("Behavior")]&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; Speed&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; m_nSpeed;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;m_nSpeed = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// property of begin color in linear gradient&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;[System.ComponentModel.Description("Gets or sets the starting color of the gradient for GradientWaitingBar"), System.ComponentModel.Category("Appearance")]&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; Color GradientColor1&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; m_col1;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;m_col1 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt; &lt;p&gt;MakeBitmapForWaitingBar();&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// property of end color in linear gradient&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;[System.ComponentModel.Description("Gets or sets the ending color of the gradient for GradientWaitingBar"), System.ComponentModel.Category("Appearance")]&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; Color GradientColor2&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; m_col2;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;m_col2 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt; &lt;p&gt;MakeBitmapForWaitingBar();&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// property of scrolling direction in control&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;[System.ComponentModel.Description("Gets or sets the direction of scrolling the gradient"), System.ComponentModel.Category("Appearance")]&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font size="2"&gt; SCROLLGRADIENTALIGN ScrollWAY&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;get&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt; m_nScrollway;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;m_nScrollway = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;value&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt; &lt;p&gt;MakeBitmapForWaitingBar();&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;} &lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;#endregion&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;#region&lt;/font&gt;&lt;font size="2"&gt; "Override Functions"&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// if control is disabled, we do not display the gradient.&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;protected&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;override&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; OnEnabledChanged(EventArgs e)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;m_timer.Enabled = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Enabled;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;base&lt;/font&gt;&lt;font size="2"&gt;.OnEnabledChanged (e);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// On Size changed, we make a new bitmap of current size&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;protected&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;override&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; OnSizeChanged(EventArgs e)&lt;/p&gt; &lt;p&gt;{ &lt;/p&gt; &lt;p&gt;MakeBitmapForWaitingBar();&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;base&lt;/font&gt;&lt;font size="2"&gt;.OnSizeChanged (e);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// scroll the gradient bitmap&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;protected&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;override&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; OnPaint(PaintEventArgs e)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(m_bitmap != &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;Graphics g = e.Graphics;&lt;/p&gt; &lt;p&gt;Rectangle rt2;&lt;/p&gt; &lt;p&gt;rt2 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(m_nScrollway == SCROLLGRADIENTALIGN.HORIZONTAL)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;rt2.X = rt2.Width - xloc;&lt;/p&gt; &lt;p&gt;rt2.Width = xloc;&lt;/p&gt; &lt;p&gt;g.DrawImage(m_bitmap, xloc, 0, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle, GraphicsUnit.Pixel);&lt;/p&gt; &lt;p&gt;g.DrawImage(m_bitmap, 0, 0, rt2, GraphicsUnit.Pixel);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;else&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;rt2.Y = rt2.Height - xloc;&lt;/p&gt; &lt;p&gt;rt2.Height = xloc;&lt;/p&gt; &lt;p&gt;g.DrawImage(m_bitmap, 0, xloc, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle, GraphicsUnit.Pixel);&lt;/p&gt; &lt;p&gt;g.DrawImage(m_bitmap, 0, 0, rt2, GraphicsUnit.Pixel);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;base&lt;/font&gt;&lt;font size="2"&gt;.OnPaint (e);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt; &lt;p&gt;#endregion&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; m_timer_Tick(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;object&lt;/font&gt;&lt;font size="2"&gt; sender, System.EventArgs e)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;xloc += m_nSpeed;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(m_nScrollway == SCROLLGRADIENTALIGN.HORIZONTAL)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(xloc &amp;gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientSize.Width)&lt;/p&gt; &lt;p&gt;xloc = 0;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;else&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(xloc &amp;gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientSize.Height)&lt;/p&gt; &lt;p&gt;xloc = 0;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;Invalidate();&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;//&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Make a Gradient Bitmap&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// For performance, on sizing and changed Properties first makes a suitable bitmap image of gradient&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// and then On paint this control uses it.&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;//&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; MakeBitmapForWaitingBar()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;//check the windows size&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Width == 0 || &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Height == 0)&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;return&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(m_bitmap != &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;)&lt;/p&gt; &lt;p&gt;m_bitmap.Dispose();&lt;/p&gt; &lt;p&gt;Graphics gimage = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;, gWnd = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt; &lt;p&gt;Brush br1, br2;&lt;/p&gt; &lt;p&gt;Rectangle rt1, rt2;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Get temporary DC and make a compatible bitmap with current Windows.&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;gWnd = Graphics.FromHwnd(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Handle);&lt;/p&gt; &lt;p&gt;m_bitmap = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Bitmap(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Width, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Height, gWnd);&lt;/p&gt; &lt;p&gt;gWnd.Dispose();&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(m_nScrollway == SCROLLGRADIENTALIGN.HORIZONTAL)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;rt1 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle;&lt;/p&gt; &lt;p&gt;rt1.Width = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Width/2+1;&lt;/p&gt; &lt;p&gt;rt2 = rt1;&lt;/p&gt; &lt;p&gt;rt2.X = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Width/2;&lt;/p&gt; &lt;p&gt;rt2.Width = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Width/2+1;&lt;/p&gt; &lt;p&gt;br1 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; LinearGradientBrush(rt1, m_col1, m_col2, LinearGradientMode.Horizontal);&lt;/p&gt; &lt;p&gt;br2 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; LinearGradientBrush(rt2, m_col2, m_col1, LinearGradientMode.Horizontal);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;else&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;rt1 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle;&lt;/p&gt; &lt;p&gt;rt1.Height = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Height/2 + 1;&lt;/p&gt; &lt;p&gt;rt2 = rt1;&lt;/p&gt; &lt;p&gt;rt2.Y = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Height / 2;&lt;/p&gt; &lt;p&gt;rt2.Height = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ClientRectangle.Height/2 + 1;&lt;/p&gt; &lt;p&gt;br1 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; LinearGradientBrush(rt1, m_col1, m_col2, LinearGradientMode.Vertical);&lt;/p&gt; &lt;p&gt;br2 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; LinearGradientBrush(rt2, m_col2, m_col1, LinearGradientMode.Vertical);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// make a new bitmap&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;p&gt;gimage = Graphics.FromImage(m_bitmap);&lt;/p&gt; &lt;p&gt;gimage.FillRectangle(br2, rt2);&lt;/p&gt; &lt;p&gt;gimage.FillRectangle(br1, rt1);&lt;/p&gt; &lt;p&gt;gimage.Dispose();&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;</description></item></channel></rss>