<?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>Animated CheckBox Control (C# Source)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/374.aspx</link><pubDate>Wed, 27 Oct 2004 19:14:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:374</guid><dc:creator>PhilipKalogero</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/374.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=374</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Αλλο ενα "μοδάτο" Control για CheckBoxes....animated με Gradient Colors...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="/images/gradient.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="source"&gt;&lt;table border="0" cellspacing="0" width="100%"&gt;&lt;tr&gt;&lt;td width="15"&gt;&lt;/td&gt;&lt;td bgcolor="lightgrey" width="15"&gt;&lt;/td&gt;&lt;td bgcolor="lightgrey"&gt;&lt;br&gt;&lt;font face="Lucida Console, Courier" size="2"&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.Diagnostics;&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.Collections;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&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; AnimationCheckBox : 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;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;public&lt;/font&gt;&lt;font size="2"&gt; AnimationCheckBox() : &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;base&lt;/font&gt;&lt;font size="2"&gt;()&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;// Setting the default property&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;AdjustTextFormat(ContentAlignment.MiddleLeft);&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;.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;m_col1 = Color.Black;&lt;/p&gt;&lt;p&gt;m_col2 = Color.LightBlue;&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Adjust the points of clip region for animation of checkbox&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;m_Points = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point[7];&lt;/p&gt;&lt;p&gt;m_Points[ 0 ] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point(0, 6);&lt;/p&gt;&lt;p&gt;m_Points[ 1 ] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point(5, 10);&lt;/p&gt;&lt;p&gt;m_Points[ 2 ] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point(15, 0);&lt;/p&gt;&lt;p&gt;m_Points[ 3 ] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point(15, 4);&lt;/p&gt;&lt;p&gt;m_Points[ 4 ] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point(5, 15);&lt;/p&gt;&lt;p&gt;m_Points[ 5 ] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point(0, 10);&lt;/p&gt;&lt;p&gt;m_Points[ 6 ] = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point(0, 6);&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// makes gradient image of checkbox&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;MakeGradientCheckBoxBrush();&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// makes clip region by the points&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;AdjustCheckImageRegion();&lt;/p&gt;&lt;p&gt;InitializeComponent();&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;true&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="#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="#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;// m_timer&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;this&lt;/font&gt;&lt;font size="2"&gt;.m_timer.Interval = 500;&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;/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;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; CHECKBOXALIGN&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;TopLeft = 0,&lt;/p&gt;&lt;p&gt;MiddleLeft,&lt;/p&gt;&lt;p&gt;BottomLeft,&lt;/p&gt;&lt;p&gt;TopRight,&lt;/p&gt;&lt;p&gt;MiddleRight,&lt;/p&gt;&lt;p&gt;BottomRight&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;enum&lt;/font&gt;&lt;font size="2"&gt; ANICHECKSTATE&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;UNCHECKED = 0,&lt;/p&gt;&lt;p&gt;CHECKING,&lt;/p&gt;&lt;p&gt;CHECKED&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;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 = 30;&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;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_CHECKBOXSIZEX = 16;&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_CHECKBOXSIZEY = 16;&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; ANICHECKSTATE m_curState = ANICHECKSTATE.UNCHECKED;&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;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;private&lt;/font&gt;&lt;font size="2"&gt; Size m_szAnimationCheckBox = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Size(16, 16);&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; 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; Bitmap m_bmCheckBox = &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; Region m_clipCheckBoxRegion = &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; StringFormat m_fmtText = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; StringFormat();&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; CHECKBOXALIGN m_alignCheckBox = CHECKBOXALIGN.MiddleLeft;&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; ContentAlignment m_alignText = ContentAlignment.MiddleLeft;&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; Rectangle m_rtCheckBox = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Rectangle();&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; Rectangle m_rtText = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Rectangle();&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; Point[] m_Points = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;null&lt;/font&gt;&lt;font size="2"&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;[System.ComponentModel.Description("Gets or sets state of Ani-Checkbox"), &lt;/p&gt;&lt;p&gt;System.ComponentModel.Category("Ani-Progress Checkbox Property")]&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; ANICHECKSTATE CHECKSTATE&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_curState;&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_curState = &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;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt;(m_curState == ANICHECKSTATE.CHECKING)&lt;/p&gt;&lt;p&gt;m_timer.Enabled = &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;else&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;m_timer.Enabled = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;false&lt;/font&gt;&lt;font size="2"&gt;;&lt;/p&gt;&lt;p&gt;Invalidate();&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;[System.ComponentModel.Description("Gets or sets size of Ani-Propgress Checkbox"), &lt;/p&gt;&lt;p&gt;System.ComponentModel.Category("Ani-Progress Checkbox Property")]&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; Size CheckBitmapSize&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_szAnimationCheckBox;&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_szAnimationCheckBox = &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;AdjustAnimationCheckBoxRect_TextRect();&lt;/p&gt;&lt;p&gt;AdjustCheckImageRegion();&lt;/p&gt;&lt;p&gt;MakeGradientCheckBoxBrush();&lt;/p&gt;&lt;p&gt;Invalidate();&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;[System.ComponentModel.Description("Gets or sets the location of checkbox"), &lt;/p&gt;&lt;p&gt;System.ComponentModel.Category("Ani-Progress Checkbox Property")]&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; CHECKBOXALIGN CheckBoxAlign&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_alignCheckBox;&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_alignCheckBox = &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;AdjustAnimationCheckBoxRect_TextRect();&lt;/p&gt;&lt;p&gt;Invalidate();&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;[System.ComponentModel.Description("Gets or sets the Align of Text in the Ani-Progress check box"), &lt;/p&gt;&lt;p&gt;System.ComponentModel.Category("Ani-Progress Checkbox Property")]&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; ContentAlignment TextAlign&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_alignText;&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_alignText = &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;AdjustTextFormat(m_alignText);&lt;/p&gt;&lt;p&gt;Invalidate();&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;[System.ComponentModel.Description("Gets or sets the starting color of the gradient for Animation CheckBox"), &lt;/p&gt;&lt;p&gt;System.ComponentModel.Category("Animcation Checkbox Property")]&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 BeginGradientColor&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;MakeGradientCheckBoxBrush();&lt;/p&gt;&lt;p&gt;Invalidate();&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;[System.ComponentModel.Description("Gets or sets the ending color of the gradient for Animation CheckBox"), &lt;/p&gt;&lt;p&gt;System.ComponentModel.Category("Animcation Checkbox Property")]&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 EndGradientColor&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;MakeGradientCheckBoxBrush();&lt;/p&gt;&lt;p&gt;Invalidate();&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; override functions&lt;/p&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; OnTextChanged(EventArgs e)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;Invalidate();&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;.OnTextChanged (e);&lt;/p&gt;&lt;p&gt;}&lt;/p&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;AdjustAnimationCheckBoxRect_TextRect();&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;/p&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;base&lt;/font&gt;&lt;font size="2"&gt;.OnPaint (e);&lt;/p&gt;&lt;p&gt;Rectangle rt = &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;Rectangle rtText, rtCheck;&lt;/p&gt;&lt;p&gt;Graphics g = e.Graphics;&lt;/p&gt;&lt;p&gt;rtCheck = m_rtCheckBox;&lt;/p&gt;&lt;p&gt;rtText = m_rtText;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;SolidBrush br = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; SolidBrush(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.ForeColor);&lt;/p&gt;&lt;p&gt;g.DrawString(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Text, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.Font, br, rtText, m_fmtText);&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// if the control's state is UNCHECKED, control do not draw the ani-checkbox image &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;(m_curState == ANICHECKSTATE.UNCHECKED)&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;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// clone the original region&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;Region r = m_clipCheckBoxRegion.Clone();&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// locate the region on the control&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;r.Translate(rtCheck.Left, rtCheck.Top);&lt;/p&gt;&lt;p&gt;Region backr = g.Clip;&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// set the clip area&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;g.Clip = r;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Rectangle bm, bm2;&lt;/p&gt;&lt;p&gt;bm = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Rectangle(0, 0, rtCheck.Width, rtCheck.Height);&lt;/p&gt;&lt;p&gt;bm2 = bm;&lt;/p&gt;&lt;p&gt;bm2.X = bm2.Width - xloc;&lt;/p&gt;&lt;p&gt;bm2.Width = xloc;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;g.DrawImage(m_bmCheckBox, rtCheck.Left + xloc, rtCheck.Top, bm, GraphicsUnit.Pixel);&lt;/p&gt;&lt;p&gt;g.DrawImage(m_bmCheckBox, rtCheck.Left, rtCheck.Top, bm2, GraphicsUnit.Pixel);&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// restore the clip area by original clip area&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;g.Clip = backr; &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; "Local Methods"&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Convert the ContentAlignment struct to StringFormat for DrawString API&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; AdjustTextFormat(ContentAlignment ca)&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;(ca == ContentAlignment.TopLeft || ca == ContentAlignment.TopCenter || ca == ContentAlignment.TopRight)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;m_fmtText.LineAlignment = StringAlignment.Near;&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;(ca == ContentAlignment.MiddleLeft || ca == ContentAlignment.MiddleCenter || ca == ContentAlignment.MiddleRight)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;m_fmtText.LineAlignment = StringAlignment.Center;&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;(ca == ContentAlignment.BottomLeft || ca == ContentAlignment.BottomCenter || ca == ContentAlignment.BottomRight)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;m_fmtText.LineAlignment = StringAlignment.Far;&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;(ca == ContentAlignment.TopLeft || ca == ContentAlignment.MiddleLeft || ca == ContentAlignment.BottomLeft)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;m_fmtText.Alignment = StringAlignment.Near;&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;(ca == ContentAlignment.TopCenter || ca == ContentAlignment.MiddleCenter || ca == ContentAlignment.BottomCenter)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;m_fmtText.Alignment = StringAlignment.Center;&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;(ca == ContentAlignment.TopRight || ca == ContentAlignment.MiddleRight || ca == ContentAlignment.BottomRight)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;m_fmtText.Alignment = StringAlignment.Far;&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;// On resizing, changing attributes of this control, recalculate the Rectangle for Text and CheckBox&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; AdjustAnimationCheckBoxRect_TextRect()&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;Rectangle rt = &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;Rectangle retRT = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Rectangle(0, 0, DEF_CHECKBOXSIZEX, DEF_CHECKBOXSIZEY);&lt;/p&gt;&lt;p&gt;retRT.Width = m_szAnimationCheckBox.Width;&lt;/p&gt;&lt;p&gt;retRT.Height = m_szAnimationCheckBox.Height;&lt;/p&gt;&lt;p&gt;Rectangle retTxt = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Rectangle(0, 0, rt.Width - retRT.Width, rt.Height);&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;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;.m_alignCheckBox == CHECKBOXALIGN.MiddleLeft || &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_alignCheckBox == CHECKBOXALIGN.TopLeft || &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_alignCheckBox == CHECKBOXALIGN.BottomLeft)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;retRT.X = 0;&lt;/p&gt;&lt;p&gt;retTxt.X = retRT.Width;&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;retRT.X = rt.Width - retRT.Width;&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;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;.m_alignCheckBox == CHECKBOXALIGN.MiddleLeft || &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_alignCheckBox == CHECKBOXALIGN.MiddleRight)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;retRT.Y = rt.Height / 2 - retRT.Height / 2;&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="#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;.m_alignCheckBox == CHECKBOXALIGN.BottomLeft || &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;font size="2"&gt;.m_alignCheckBox == CHECKBOXALIGN.BottomRight)&lt;/p&gt;&lt;p&gt;{ &lt;/p&gt;&lt;p&gt;retRT.Y = rt.Height - retRT.Height;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;m_rtCheckBox = retRT;&lt;/p&gt;&lt;p&gt;m_rtText = retTxt;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Makes the Checkbox clip region&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; AdjustCheckImageRegion()&lt;/p&gt;&lt;p&gt;{ &lt;/p&gt;&lt;p&gt;GraphicsPath gp = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; GraphicsPath();&lt;/p&gt;&lt;p&gt;Point[] pt = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Point[m_Points.Length];&lt;/p&gt;&lt;p&gt;m_Points.CopyTo(pt, 0);&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;for&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; i=0;i&amp;lt;pt.Length;i++)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;pt[ i ].X = pt[ i ].X * m_szAnimationCheckBox.Width / DEF_CHECKBOXSIZEX;&lt;/p&gt;&lt;p&gt;pt[ i ].Y = pt[ i ].Y * m_szAnimationCheckBox.Height / DEF_CHECKBOXSIZEY;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;gp.AddLines(pt);&lt;/p&gt;&lt;p&gt;m_clipCheckBoxRegion = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Region(gp);&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;// Makes the Checkbox Gradient brush&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; MakeGradientCheckBoxBrush()&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_bmCheckBox != &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_bmCheckBox.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;Rectangle rtCheckBox;&lt;/p&gt;&lt;p&gt;AdjustAnimationCheckBoxRect_TextRect();&lt;/p&gt;&lt;p&gt;rtCheckBox = m_rtCheckBox;&lt;/p&gt;&lt;p&gt;Rectangle rtLeft = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Rectangle(0, 0, rtCheckBox.Width/2 + 1, rtCheckBox.Height);&lt;/p&gt;&lt;p&gt;Rectangle rtRight = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Rectangle(rtCheckBox.Width/2, 0, rtCheckBox.Width/2 + 1, rtCheckBox.Height);&lt;/p&gt;&lt;p&gt;LinearGradientBrush br1 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; LinearGradientBrush(rtLeft, m_col1, m_col2, LinearGradientMode.Horizontal);&lt;/p&gt;&lt;p&gt;LinearGradientBrush br2 = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; LinearGradientBrush(rtRight, m_col2, m_col1, LinearGradientMode.Horizontal);&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_bmCheckBox = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; Bitmap(rtCheckBox.Width, rtCheckBox.Height, gWnd);&lt;/p&gt;&lt;p&gt;gWnd.Dispose();&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_bmCheckBox);&lt;/p&gt;&lt;p&gt;gImage.FillRectangle(br2, rtRight);&lt;/p&gt;&lt;p&gt;gImage.FillRectangle(br1, rtLeft);&lt;/p&gt;&lt;p&gt;gImage.Dispose();&lt;/p&gt;&lt;p&gt;br1.Dispose();&lt;/p&gt;&lt;p&gt;br2.Dispose();&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++;&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;= m_rtCheckBox.Width)&lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;xloc = 0;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;Invalidate(m_rtCheckBox);&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;br&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/pre&gt;&lt;/font&gt;</description></item></channel></rss>