{"id":118,"date":"2011-04-26T13:27:01","date_gmt":"2011-04-26T11:27:01","guid":{"rendered":"http:\/\/hen.co.za\/blog\/?p=118"},"modified":"2011-04-28T10:23:15","modified_gmt":"2011-04-28T08:23:15","slug":"fading-windows-form-in-and-out","status":"publish","type":"post","link":"https:\/\/hen.co.za\/blog\/2011\/04\/fading-windows-form-in-and-out\/","title":{"rendered":"Fading Windows form in and out"},"content":{"rendered":"<p>I&#8217;ve been using a little class for years to make Windows Forms fade in and out using the built-in OS features. This makes it far more powerful than just playing with the opacity. Using it is also very easy as it is a self contained class that already inherits from System.Windows.Forms.Form. This means all you have to do to use it is inherit from it and everything else is done for you already.<\/p>\n<blockquote><p><span style=\"color: #0000ff;\">using <\/span>System;<br \/>\n<span style=\"color: #0000ff;\">using <\/span>System.Runtime.InteropServices;<br \/>\n<span style=\"color: #0000ff;\">using <\/span>System.Windows.Forms;<\/p>\n<p><span style=\"color: #0000ff;\">namespace <\/span>HenIT.Windows.Forms<br \/>\n{<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\">public class<\/span> FadeForm : <span style=\"color: #0000ff;\">Form<\/span><br \/>\n{<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #008000;\">#region Constants<\/span><br \/>\n<span style=\"color: #0000ff;\">const int <\/span>AW_HIDE = 0X10000;<br \/>\n<span style=\"color: #0000ff;\">const int <\/span>AW_ACTIVATE = 0X20000;<br \/>\n<span style=\"color: #0000ff;\">const int<\/span> AW_HOR_POSITIVE = 0X1;<br \/>\n<span style=\"color: #0000ff;\">const int<\/span> AW_HOR_NEGATIVE = 0X2;<br \/>\n<span style=\"color: #0000ff;\">const int<\/span> AW_SLIDE = 0X40000;<br \/>\n<span style=\"color: #0000ff;\">const int<\/span> AW_BLEND = 0X80000;<br \/>\n<span style=\"color: #0000ff;\">const int<\/span> FADEINTIMEMS = 500;<br \/>\n<span style=\"color: #0000ff;\">const int<\/span> FADEOUTMS = 250;<br \/>\n<span style=\"color: #008000;\"> #endregion<\/span><\/p>\n<p style=\"padding-left: 60px;\">[<span style=\"color: #0000ff;\">DllImport<\/span>(&#8220;user32.dll&#8221;, CharSet = <span style=\"color: #0000ff;\">CharSet<\/span>.Auto)]<br \/>\n<span style=\"color: #0000ff;\">private static extern int <\/span>AnimateWindow<br \/>\n(<span style=\"color: #0000ff;\">IntPtr <\/span>hwand, <span style=\"color: #0000ff;\">int <\/span>dwTime, <span style=\"color: #0000ff;\">int <\/span>dwFlags);<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\">private bool<\/span> _UseSlideAnimation;<br \/>\n<span style=\"color: #0000ff;\">public <\/span>FadeForm() : <span style=\"color: #0000ff;\">this<\/span>(<span style=\"color: #0000ff;\">false<\/span>) { }<br \/>\n<span style=\"color: #0000ff;\">public <\/span>FadeForm(<span style=\"color: #0000ff;\">bool <\/span>useSlideAnimation)<br \/>\n{<\/p>\n<p style=\"padding-left: 90px;\">_UseSlideAnimation = useSlideAnimation;<\/p>\n<p style=\"padding-left: 60px;\">}<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #008000;\">#region Overrides<\/span><br \/>\n<span style=\"color: #0000ff;\"> protected override void<\/span> OnLoad(<span style=\"color: #0000ff;\">EventArgs <\/span>e)<br \/>\n{<\/p>\n<p style=\"padding-left: 90px;\"><span style=\"color: #0000ff;\">base<\/span>.OnLoad(e);<br \/>\nAnimateWindow(<span style=\"color: #0000ff;\">this<\/span>.Handle, FADEINTIMEMS, AW_ACTIVATE | (_UseSlideAnimation ?<br \/>\nAW_HOR_POSITIVE | AW_SLIDE : AW_BLEND));<br \/>\n<span style=\"color: #0000ff;\">this<\/span>.Refresh();<\/p>\n<p style=\"padding-left: 60px;\">}<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\">protected override void<\/span> OnClosing(System.ComponentModel.<span style=\"color: #0000ff;\">CancelEventArgs <\/span>e)<br \/>\n{<\/p>\n<p style=\"padding-left: 90px;\"><span style=\"color: #0000ff;\">base<\/span>.OnClosing(e);<br \/>\n<span style=\"color: #0000ff;\">if <\/span>(e.Cancel == <span style=\"color: #0000ff;\">false<\/span>)<br \/>\n{<\/p>\n<p style=\"padding-left: 120px;\">AnimateWindow(this.Handle, FADEOUTMS, AW_HIDE | (_UseSlideAnimation ?<br \/>\nAW_HOR_NEGATIVE | AW_SLIDE : AW_BLEND));<\/p>\n<p style=\"padding-left: 90px;\">}<\/p>\n<p style=\"padding-left: 60px;\">}<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #008000;\">#endregion<\/span><\/p>\n<p style=\"padding-left: 30px;\">}<\/p>\n<p>}<\/p><\/blockquote>\n<p>And that is it!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been using a little class for years to make Windows Forms fade in and out using the built-in OS features. This makes it far more powerful than just playing with the opacity. Using it is also very easy as &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/hen.co.za\/blog\/2011\/04\/fading-windows-form-in-and-out\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[7,8,9,303,10],"class_list":["post-118","post","type-post","status-publish","format-standard","hentry","category-development","tag-net","tag-c","tag-code","tag-development","tag-winforms"],"_links":{"self":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":6,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"predecessor-version":[{"id":123,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/118\/revisions\/123"}],"wp:attachment":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}