<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1394209710825810332</id><updated>2011-12-21T13:22:07.962+07:00</updated><category term='Sidedish'/><category term='Visual Studio 2008'/><category term='GDI+'/><category term='Tutorial'/><category term='Functions'/><category term='Welcome'/><title type='text'>Visual Basic Corner</title><subtitle type='html'>A Visual Basic Tutorial Site.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-2909344191443241631</id><published>2007-11-07T15:03:00.001+07:00</published><updated>2007-11-07T15:17:58.392+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Functions'/><title type='text'>Generating Windows Standard Time zones</title><content type='html'>&lt;p&gt;A time zone, is a region of the earth that has the same standard time. All areas within that region will apply the same time. Because earth sphere shape, and the rotation of the earth, generally there are 24 regions with each region has a difference of 1 hour. But some occasions appeared in some areas resulting it has different time from it region should have.&lt;/p&gt; &lt;h1&gt;&lt;font size="2"&gt;Windows Time Zone&lt;/font&gt;&lt;/h1&gt; &lt;p&gt;If you set&amp;nbsp;your time, you will see a time zone tab in the dialog. Alternatively, you can see windows standard time zones in regional setting in control panel. In that dialog, you'll see a list of standard time zones. Our primary goal in this article, is to retrieve the values and mimic it's functionality. And since I'm not lived in Daylight Saving countries, I'll skip that feature because I'm still don't know exactly how it work.&lt;/p&gt; &lt;h1&gt;&lt;font size="2"&gt;Preparation&lt;/font&gt;&lt;/h1&gt; &lt;p&gt;Our first preparation is to know where Windows store this time zone list. It stored on registry, at "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\". In that key, there are many sub keys which provide information on each time zones. So, to retrieve the time zone list, we will look at these sub keys and read their values.&lt;/p&gt; &lt;h1&gt;&lt;font size="2"&gt;Designing Basic Fundamentals&lt;/font&gt;&lt;/h1&gt; &lt;p&gt;The first time we should do is creating a Time Zone structure that will contain time zone data. We don't need a class because it's only for displaying data and light processing. Besides, we will use generic collection to store all time zones structure. &lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="100%" border="1" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="100%"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="100%"&gt; &lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:642c2c0c-9789-4d88-a2ff-45326e3f1657" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:White;;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Structure&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeZones&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; _Display &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; _Name &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; _TimeSpan &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeSpan&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Property&lt;/span&gt;&lt;span style="color: #000000;"&gt; DisplayName() &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; _Display&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; value &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            _Display &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; value&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Property&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Property&lt;/span&gt;&lt;span style="color: #000000;"&gt; Name() &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; _Name&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; value &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            _Name &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; value&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Set&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Property&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ReadOnly&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Property&lt;/span&gt;&lt;span style="color: #000000;"&gt; Span() &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeSpan&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; _TimeSpan&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Get&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Property&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Structure&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Next, we will analyze how time zone structures in registry where windows stored them. As I told earlier, windows stored time zone data in "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\". Each time zone data stored on a sub key. In sub key, there are 4 string values, a dword values and a binary values. Basically, we need only one key which is display values. The display key will be added in our time zone structures. From this display data, we will set time span for the time zone as well. To validate a time zone's time span, we will parse directly from display value. Display value will have data like this : "(GMT+07:00) Bangkok, Hanoi, Jakarta". In order to get time span, we will parse "(GMT+07:00)" in order to get 07:00 value. A new function will needed to parse this information, so we add it in Time Zone structure.&lt;/p&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="100%" border="1" unselectable="on"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e56a08d0-fd4b-4279-8eec-5bbf93aca23f" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:White;;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; ValidateTimeSpan()&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;Example: (GMT+07:00)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Try&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mid&lt;/span&gt;&lt;span style="color: #000000;"&gt;(_Display, &lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;GMT&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                _TimeSpan &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;New&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeSpan(&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;+&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                _TimeSpan &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;New&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeSpan(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CInt&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mid&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;(_Display, &lt;/span&gt;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;)), &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CInt&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mid&lt;/span&gt;&lt;span style="color: #000000;"&gt;(_Display, &lt;/span&gt;&lt;span style="color: #800080;"&gt;9&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;)), &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;-&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                _TimeSpan &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;New&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeSpan(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CInt&lt;/span&gt;&lt;span style="color: #000000;"&gt;(Mid_&lt;br /&gt;(_Display, &lt;/span&gt;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CInt&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mid&lt;/span&gt;&lt;span style="color: #000000;"&gt;(_Display, &lt;/span&gt;&lt;span style="color: #800080;"&gt;9&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;)) &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Catch&lt;/span&gt;&lt;span style="color: #000000;"&gt; ex &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; Exception&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;'&lt;/span&gt;&lt;span style="color: #008000;"&gt;GMT will raise an error. So we place it here.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        _TimeSpan &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;New&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeSpan(&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Try&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Sub&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Now our base structure is ready to use. It's time to implement it in our class. For this sample, I'll use a form and a combo box for generate time zones.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;First step is to initialize a collection variable that contain time zones. Next we will fill the collection to our list from windows registry. To access registry, we will need Win32 library.&lt;/p&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="100%" border="1" unselectable="on"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:d6f01858-1300-4fd8-94d9-18497d9781d8" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 459px; padding-top: 0px"&gt;&lt;pre style="background-color:White;;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; c &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;New&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;System.Collections.Generic.List(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Of&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeZones)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; GenerateTimezone()&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; rk &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; RegistryKey &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;    Registry.LocalMachine.OpenSubKey( _&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;SOFTWARE\&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Microsoft\Windows NT\&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;CurrentVersion\Time Zones\&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;, _&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;True&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;For&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Each&lt;/span&gt;&lt;span style="color: #000000;"&gt; sName &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;        rk.GetSubKeyNames&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; tempKey &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;        RegistryKey &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;        rk.OpenSubKey(sName, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;True&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; _tz &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;New&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeZones&lt;br /&gt;        _tz.DisplayName &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;        &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CType&lt;/span&gt;&lt;span style="color: #000000;"&gt;(tempKey.GetValue(_&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Display&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;), &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;        &lt;br /&gt;        _tz.Name &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CType&lt;/span&gt;&lt;span style="color: #000000;"&gt;(tempKey.GetValue(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Std&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;), &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;&lt;br /&gt;        c.Add(_tz)&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Next&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Sub&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Now we have our list fill with Time Zones information. Unfortunately, the list is not ordered like it should have. Also, time zone ordering is not based on alphabetical. It ordered by time span. Since standard collection class doesn't provide us with that kind of sorting, we have to make by our self. &lt;/p&gt;&lt;br /&gt;&lt;table cellspacing="0" cellpadding="2" width="100%" border="1" unselectable="on"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:db253bc6-5049-4e58-b3e0-94ea1a37bc8e" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:White;;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeZoneConvert(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;str&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;) _&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mid&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;str&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;)&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;0&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mid&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;str&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mid&lt;/span&gt;&lt;span style="color: #000000;"&gt;(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;str&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;9&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; CompareTimezones(_&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; tz1 &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeZones, _&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; tz2 &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeZones) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;IsNothing&lt;/span&gt;&lt;span style="color: #000000;"&gt;(tz1) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;IsNothing&lt;/span&gt;&lt;span style="color: #000000;"&gt;(tz2) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;IsNothing&lt;/span&gt;&lt;span style="color: #000000;"&gt;(tz2) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; int1 &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CInt&lt;/span&gt;&lt;span style="color: #000000;"&gt;(TimeZoneConvert(tz1.DisplayName))&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; int2 &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;CInt&lt;/span&gt;&lt;span style="color: #000000;"&gt;(TimeZoneConvert(tz2.DisplayName))&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; int1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; int2 &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ElseIf&lt;/span&gt;&lt;span style="color: #000000;"&gt; int1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; int2 &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt; DisplayTimeZones()&lt;br /&gt;    cmbTimezone.Items.Clear()&lt;br /&gt;&lt;br /&gt;    c.Sort(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;AddressOf&lt;/span&gt;&lt;span style="color: #000000;"&gt; CompareTimezones)&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;For&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Each&lt;/span&gt;&lt;span style="color: #000000;"&gt; tz &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeZones &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;In&lt;/span&gt;&lt;span style="color: #000000;"&gt; c&lt;br /&gt;        cmbTimezone.Items.Add(tz.DisplayName)&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; TimeZone.CurrentTimeZone.StandardName &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;        tz.Name &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            cmbTimezone.Text &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; tz.DisplayName&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Next&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Sub&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;That's all. Our Time Zone form is finished. The form will look like this. &lt;img src="http://www.geocities.com/mick_rawi/tzform.jpg"&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now, it can display as Windows Time Zone does. You can download the source sample &lt;a href="http://www.geocities.com/mick_rawi/timezoneform.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-2909344191443241631?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/2909344191443241631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=2909344191443241631' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/2909344191443241631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/2909344191443241631'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/11/generating-windows-standard-time-zones.html' title='Generating Windows Standard Time zones'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-2463599916850421212</id><published>2007-10-26T16:10:00.001+07:00</published><updated>2007-10-26T16:10:28.306+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Playing with Visual Studio 2008 Beta 2</title><content type='html'>&lt;p&gt;It's been 2 weeks since I installed Visual Studio 2008 Team System Beta 2. But I've only play with this new "toy" since last week. Also this is my second time playing with Team Edition of Visual Studio. I have tried Visual Studio 2005 Team System few months ago, but only for a short time.&lt;/p&gt; &lt;p&gt;My first look of this tools is&amp;nbsp;that the user interface has few changes. The first one is the start page news panes has a little change from the previous version. It's tab has slight change too. Also the toolbox tab and task tab has a slight change in appearance. &lt;/p&gt; &lt;p&gt;My most excitement using this tools, because of its Team System version. I never had a change to play with it, since the software price is high for me to afford, and it seems impossible for my company to buy this software&amp;nbsp;at this moment. The one that I want to try is "code metric" future, and Test project. I've also tried Code Analysis feature, which I still not find useful enough right now.&lt;/p&gt; &lt;p&gt;One of my home little project that I work with this tools is to create a global GDI+ functions and methods that I'd like to use in my future projects. I'm tired of making the same GDI+ functions for each project, even if those are new functions. So I want to shorten my work, by grouping all stuff that I'd need in one library. Seems pretty neat isn't it? With this project, I'd like to explore more about Team System Edition and also the new .NET 3.5 features.&lt;/p&gt; &lt;p&gt;Back to the IDE, finally, VB has improved in its intellisense. Now, it works as C# does. You only need to type a word, then intellisense appeared immediately. Actually, I hope Microsoft would give this feature&amp;nbsp;when they shipped&amp;nbsp;VS 2005&amp;nbsp;Service Pack 1.&lt;/p&gt; &lt;p&gt;The New Project dialog also has a new appearance. You can target a specific .NET Framework version on your project, although I always choose the newest one. New item dialog has improvement too. Now, items divided in groups. You can view them in groups or view them all.&lt;/p&gt; &lt;p&gt;The menu has different highlighting. I bet they manually draw the renderer. The context menu is the same as well.&lt;/p&gt; &lt;p&gt;There's a new addition in project properties. One that I found just as I read this blog, is UAC settings. I bet this has something to do with Windows Vista UAC. I'll explore more about it when I have spare time in my home (since my office don't have Vista and probably don't want to use it in next&amp;nbsp;few years). Framework targeting can be change here, but it require you to close the solution first.&lt;/p&gt; &lt;h1&gt;&lt;font size="2"&gt;Closing&lt;/font&gt;&lt;/h1&gt; &lt;p&gt;There's only 4 months until Visual Studio 2008 RTM-ed. So, I guess, it'd be impossible to explore all new stuff. For now, I'll stay in learning how to use Test project. I hope it can go well and I can finish my current home project as well.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-2463599916850421212?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/2463599916850421212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=2463599916850421212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/2463599916850421212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/2463599916850421212'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/10/playing-with-visual-studio-2008-beta-2.html' title='Playing with Visual Studio 2008 Beta 2'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-4779744950941366797</id><published>2007-10-26T11:14:00.001+07:00</published><updated>2007-10-26T15:21:30.439+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Functions'/><title type='text'>Convert Number (Currency) to Word - Part II</title><content type='html'>&lt;p&gt;On my &lt;a href="http://vbcorner.blogspot.com/2007/10/convert-number-currency-to-word-part-i.html"&gt;previous post&lt;/a&gt;, I explained how to convert number to word in English language. In this part, I'll explain about Indonesian language.&lt;/p&gt; &lt;p&gt;Basically, there's no big difference between those two languages. In fact, converting to Indonesian is easier than English, because pronunciation rule for Indonesian language is simpler.&lt;/p&gt; &lt;p&gt;There's no change in prefix, except you change English to Indonesian. Single word converter is as easy as prefix. All you have to do is to change their language. Indonesian only have 1 special field for "1" ("Se"), all others will remain same when added a prefix.&lt;/p&gt; &lt;p&gt;The last part is the main function, which is relatively easy too. You only need to add "puluh" and "belas" prefix if needed. The rest can be understand by looking at the code. &lt;/p&gt; &lt;p&gt;You can download the code &lt;a href="http://www.geocities.com/mick_rawi/myfunctions.zip"&gt;here&lt;/a&gt;. It&amp;nbsp;supports both Indonesian and English .&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-4779744950941366797?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/4779744950941366797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=4779744950941366797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/4779744950941366797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/4779744950941366797'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/10/convert-number-currency-to-word-part-ii.html' title='Convert Number (Currency) to Word - Part II'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-4685338704890538047</id><published>2007-10-25T17:02:00.001+07:00</published><updated>2007-10-26T15:22:20.937+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='Functions'/><title type='text'>Convert Number (Currency) to Word - Part I</title><content type='html'>&lt;p&gt;On many accounting software, sometimes you need to convert the current number to words. This can be done by make a function which will return a string of number given by input parameter. The function itself actually is very easy to make, if you want basic converting of course. The interesting part is that each developer has unique way to make this algorithm. And because it's wide solution that can be produced, this problem often used by programming courses to make their students understand about algorithm.&lt;/p&gt; &lt;p&gt;To make a good number to word converter, first we must understand how to pronounce those words. In this part, we will make an English converter. Part II will have an Indonesian converter.&lt;/p&gt; &lt;h1&gt;&lt;font size="2"&gt;Basic Understanding&lt;/font&gt;&lt;/h1&gt; &lt;p&gt;First rule of converting number is to know the prefix. In English, the common prefixes are hundred, thousand, million, billion, and trillion. I called these by "level". So, we need 5 type of level, right ? Well, not quite right. Actually, we only need 4 type of level. Hundred can be repeated in every level. Ex: 1100 (One thousand one hundred), and 1000100 (One Million One hundred). Now, let's make a function for this level.&lt;/p&gt; &lt;table bordercolor="#4f81bd" cellspacing="0" cellpadding="2" width="100%" border="1" unselectable="on"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="100%" bgcolor="#4f81bd"&gt;&lt;strong&gt;&lt;font color="#ffffff"&gt;Code 1&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="100%"&gt; &lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:5923824e-17bf-455d-a757-be7f1d81881f" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:White;;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Shared&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; EnglishLevel(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; level &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; level&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;thousand &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;million &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;billion &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;trillion &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Function&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Now me&amp;nbsp;will create&amp;nbsp;a default number to word function. This function will return a string represent the number given in it's parameter. You can see the snippet in &lt;strong&gt;code 2.&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table bordercolor="#4f81bd" cellspacing="0" cellpadding="2" width="100%" border="1" unselectable="on"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%" bgcolor="#4f81bd"&gt;&lt;strong&gt;&lt;font color="#ffffff"&gt;Code 2&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:199aa638-20ac-4b24-b3a7-ec58c69cd875" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:White;;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Shared&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; EnglishNumber(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; num&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;one&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;two&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;three&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;four&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;five&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;six&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;7&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;seven&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;eight&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;9&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;nine&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Function&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h1&gt;&lt;font size="2"&gt;Pattern Understanding&lt;/font&gt;&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;Before we make the main function, we should think about the pattern algorithm first and design the function. In this section, I'll explain about how the algorithm works.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The first pattern that you should know, is that within the prefix, the word is &lt;strong&gt;repeat&lt;/strong&gt; them self. Lets see this example: 123,123 (&lt;font color="#ff0000"&gt;One hundred twenty&amp;nbsp;three&lt;/font&gt; thousand &lt;font color="#ff0000"&gt;one hundred twenty three&lt;/font&gt;). Even for 123,123,123; the pattern will be same. All you have to add is only the prefix. By analyze this pattern, we only need a function to define the prefix (which I already add in above), and a function to define the number, and repeat itself. For my solution, I'll use a recursion and playing with reference passing and default math functions.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The second and third&amp;nbsp;patterns&amp;nbsp;are&amp;nbsp;"ty" and "teen"&amp;nbsp;prefix. Some numbers don't change their pronunciations ("sixty"/"sixteen", "seventy"/"seventeen"), but some does change ("fifty"/"fifteen" not "fivety"/"fiveteen"). Luckily, some of those numbers won't have a specific word between "ty" and "teen". Three exceptions are&amp;nbsp;for 10, 11, and 12. Therefore, we should modify our EnglishNumber function from Code 2 in to this.&lt;/p&gt;&lt;br /&gt;&lt;table bordercolor="#4f81bd" cellspacing="0" cellpadding="2" width="100%" border="1" unselectable="on"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%" bgcolor="#4f81bd"&gt;&lt;font color="#ffffff"&gt;&lt;strong&gt;Code 2 - Revised.&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:8ce4b16a-a664-4f0e-9eb7-b74b56a715dd" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:White;;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF;"&gt;Private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Shared&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; EnglishNumber(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;, _&lt;br /&gt;                                      &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; special &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Boolean&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; num&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;one&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; special &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;twen&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;two&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; special &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;thir&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;three&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;four&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; special &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;fif&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;five&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;6&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;six&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;7&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;seven&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; special &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;eigh&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;eight&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Case&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;9&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;nine&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Select&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Function&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;h1&gt;&lt;font size="2"&gt;Make Main Function&lt;/font&gt;&lt;/h1&gt;&lt;br /&gt;&lt;p&gt;Finally, all we need is the main function that will be called. Remember that we only need to parse 3 number each prefix, since it will repeat after a prefix was given. For this method, I'll use a recursive approach.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;First, we separate hundreds with "\". Second, we will decide whether we need "ty" or "teen". The last one, we will use recursive until we have 3 digits of number.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Additional function that we should add, is the ability to say in either&amp;nbsp;formal&amp;nbsp;English (UK) or non formal English (US). The difference is only the use of "and". In UK, 110 should read "One hundred &lt;strong&gt;and&lt;/strong&gt; ten", while in US, it's ok if you only say "One hundred ten". You can see the code 3&amp;nbsp;below.&lt;/p&gt;&lt;br /&gt;&lt;table bordercolor="#4f81bd" cellspacing="0" cellpadding="2" width="100%" border="1" unselectable="on"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%" bgcolor="#4f81bd"&gt;&lt;font color="#ffffff"&gt;&lt;strong&gt;Code 3&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td valign="top" width="100%"&gt;&lt;br&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:65a52f49-1c78-4238-b0fb-dd08c2e23593" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 592px; padding-top: 0px"&gt;&lt;pre style="background-color:White;;overflow: auto;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF;"&gt;Public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Shared&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Function&lt;/span&gt;&lt;span style="color: #000000;"&gt; NumberToEnglishWords(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Long&lt;/span&gt;&lt;span style="color: #000000;"&gt;, _&lt;br /&gt;                                             &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; level &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Integer&lt;/span&gt;&lt;span style="color: #000000;"&gt;, _&lt;br /&gt;                                             &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Optional&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ByVal&lt;/span&gt;&lt;span style="color: #000000;"&gt; Official &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;                                             &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Boolean&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;True&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;String&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;As&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Long&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mod&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1000&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;99&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; EnglishNumber(pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;False&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt; hundred &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mod&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;And&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;100&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;And&lt;/span&gt;&lt;span style="color: #000000;"&gt; Official &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;True&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;and &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;19&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; EnglishNumber(pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;True&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ty &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;        EnglishNumber(pInt &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mod&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;False&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ElseIf&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ten&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ElseIf&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;11&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;eleven &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ElseIf&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;11&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; EnglishNumber(pInt &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mod&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;True&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;teen &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;ElseIf&lt;/span&gt;&lt;span style="color: #000000;"&gt; pInt &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;12&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;twelve &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; EnglishNumber(pInt &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mod&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;10&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;False&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1000&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt; num &lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1000&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Mod&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1000&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; NumberToEnglishWords(num &lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1000&lt;/span&gt;&lt;span style="color: #000000;"&gt;, level &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; _&lt;br /&gt;            EnglishLevel(level) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;            retval &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; NumberToEnglishWords(num &lt;/span&gt;&lt;span style="color: #000000;"&gt;\&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1000&lt;/span&gt;&lt;span style="color: #000000;"&gt;, level &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;If&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;Return&lt;/span&gt;&lt;span style="color: #000000;"&gt; retval&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;End Function&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;That's all. Just call the main function, and it will return the number in string variable. Next part, I'll explain about how to convert number to word in Indonesian Language.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You can download the code &lt;a href="http://www.geocities.com/mick_rawi/myfunctions.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-4685338704890538047?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/4685338704890538047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=4685338704890538047' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/4685338704890538047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/4685338704890538047'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/10/convert-number-currency-to-word-part-i.html' title='Convert Number (Currency) to Word - Part I'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-4550623213892400818</id><published>2007-04-27T11:29:00.001+07:00</published><updated>2007-05-02T16:25:31.461+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sidedish'/><title type='text'>Tables from Office 2007 to BlogSpot – Part III</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Back to result from my previous post &lt;a href='http://michaelrawi.blogspot.com/2007/04/tables-from-office-2007-to-blogspot.html'&gt;here&lt;/a&gt;, and &lt;a href='http://michaelrawi.blogspot.com/2007/04/tables-from-office-2007-to-blogspot_26.html'&gt;here&lt;/a&gt;, I'm disappointed from the results I get (Yeah, all of them). My first curious is because the table width are simply not dynamic. Let's try this again.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Table 1: Dynamic table with layout and auto fit content turned on&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:638px'&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr style='background: #4f81bd'&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt'&gt;&lt;p&gt;&lt;span style='color:white'&gt;Code&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt'&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;Using&lt;/span&gt; lgb &lt;span style='color:blue'&gt;As&lt;/span&gt;&lt;br /&gt;          &lt;span style='color:blue'&gt;New&lt;/span&gt; LinearGradientBrush(&lt;span style='color:blue'&gt;Me&lt;/span&gt;.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;    e.Graphics.FillRectangle(lgb, &lt;span style='color:blue'&gt;Me&lt;/span&gt;.ClientRectangle)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;End&lt;/span&gt;&lt;br /&gt;          &lt;span style='color:blue'&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Table 2: Dynamic table with layout and auto fit to window turned on&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:638px'&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr style='background: #4f81bd'&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt'&gt;&lt;p&gt;&lt;span style='color:white'&gt;Code&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt'&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;Using&lt;/span&gt; lgb &lt;span style='color:blue'&gt;As&lt;/span&gt;&lt;br /&gt;          &lt;span style='color:blue'&gt;New&lt;/span&gt; LinearGradientBrush(&lt;span style='color:blue'&gt;Me&lt;/span&gt;.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;    e.Graphics.FillRectangle(lgb, &lt;span style='color:blue'&gt;Me&lt;/span&gt;.ClientRectangle)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;End&lt;/span&gt;&lt;br /&gt;          &lt;span style='color:blue'&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Table 3: Dynamic table with layout and column width set to 100%&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:413px'&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr style='background: #4f81bd'&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt'&gt;&lt;p&gt;&lt;span style='color:white'&gt;Code&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt'&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;Using&lt;/span&gt; lgb &lt;span style='color:blue'&gt;As&lt;/span&gt;&lt;br /&gt;          &lt;span style='color:blue'&gt;New&lt;/span&gt; LinearGradientBrush(&lt;span style='color:blue'&gt;Me&lt;/span&gt;.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;    e.Graphics.FillRectangle(lgb, &lt;span style='color:blue'&gt;Me&lt;/span&gt;.ClientRectangle)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-family:Courier New; font-size:10pt'&gt;&lt;span style='color:blue'&gt;End&lt;/span&gt;&lt;br /&gt;          &lt;span style='color:blue'&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Okay, let's see the result now.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-4550623213892400818?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/4550623213892400818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=4550623213892400818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/4550623213892400818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/4550623213892400818'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/04/tables-from-office-2007-to-blogspot.html' title='Tables from Office 2007 to BlogSpot – Part III'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-9088294540871038029</id><published>2007-04-26T13:16:00.001+07:00</published><updated>2007-10-26T15:22:38.799+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='GDI+'/><title type='text'>Linear Gradient Brush</title><content type='html'>&lt;div&gt;&lt;span xmlns=""&gt;&lt;br /&gt;&lt;p&gt;Linear gradient brush is a one directional color transition between start and end colors. You can set the transition direction with specify it from start and finish point, or choose the direction from its constructor. To use a linear gradient, simply declare a variable as LinearGradientBrush object. Next step is to calculate transition direction. LinearGradientBrush constructor can receive either graphics object or coordinates. The difference is only that you only can choose 4 default direction if you use a graphics object. Once you're done, prepare its drawing surface. The drawing surface can be ellipse, rectangle, path, region, or even a single line. And one more thing, each of the code shown below is on a form's paint event, unless I've said otherwise.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h4&gt;Part I: Basic Understanding&lt;br /&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p&gt;For starter, let's create a simple rectangle and paint with our first gradient.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Example 1: Drawing a simple linear gradient.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.geocities.com/mick_rawi/LinearGradient.JPG"&gt;&lt;img src="http://www.geocities.com/mick_rawi/LinearGradient.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 638px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;br /&gt;&lt;tbody valign="top"&gt;&lt;br /&gt;&lt;tr style="BACKGROUND: #4f81bd"&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#f4f4f4;"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; lgb &lt;span style="color:blue;"&gt;As &lt;/span&gt;&lt;span style="color:blue;"&gt;New&lt;/span&gt; LinearGradientBrush(&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;e.Graphics.FillRectangle(lgb, &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;The code above is using a constructor with rectangle and 2 colors and a defined direction for transition.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;From now on, when drawing a GDI+, you should now the difference between brush surface and drawing surface. Let see again at the sample above. Me.ClientRectangle on LinearGradientBrush constructor is the brush surface, while Me.ClientRectangle on FillRectangle method is drawing surface. To make it more clearly, let's take a look on this sample.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Example 2: Drawing 2 linear gradients in different drawing surface&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://lh5.google.com/image/michaelrawi/RjhWFPYEjNI/AAAAAAAAABg/rkLimWCNqmg/lineargradient2.JPG"/&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 638px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;br /&gt;&lt;tbody valign="top"&gt;&lt;br /&gt;&lt;tr style="BACKGROUND: #4f81bd"&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#f4f4f4;"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt; drawingSurface1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; Rectangle(10, 10, 100, 30)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt; rectangleBrush1 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; Rectangle(10, 10, 100, 30)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; lgb &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; LinearGradientBrush(rectangleBrush1, Color.Blue, Color.Red, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;e.Graphics.FillRectangle(lgb, drawingSurface1)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Using&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt; drawingSurface2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; Rectangle(10, 50, 100, 30)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt; rectangleBrush2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; Rectangle(10, 50, 150, 30)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; lgb2 &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; LinearGradientBrush(rectangleBrush2, Color.Blue, Color.Red, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;e.Graphics.FillRectangle(lgb2, drawingSurface2)&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;color:#3333ff;"&gt;End Using&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Recognize the different between first rectangle and second one? On the second rectangle, the gradient actually ends after 150 pixel, but since we only draw 100 pixel with a rectangle, the rest is cut out. So, be creative with your design.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h4&gt;Part II: Triangular Blend&lt;br /&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p&gt;The triangular effect set color transition from a start color to end color and then revert to start color again.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Example 3: Triangular Blend Effect.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://lh3.google.com/image/michaelrawi/RjhWGvYEjPI/AAAAAAAAABw/5316Px1RNMM/triangular.JPG"/&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 638px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;br /&gt;&lt;tbody valign="top"&gt;&lt;br /&gt;&lt;tr style="BACKGROUND: #4f81bd"&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#f4f4f4;"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; lgb &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; LinearGradientBrush(&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle, Color.Blue, Color.Red, LinearGradientMode.Horizontal&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;lgb.SetBlendTriangularShape(0.5F, 1.0F)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;e.Graphics.FillRectangle(lgb, &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Experiment the peak location by changing the SetBlendTriangularShape value (must be decimal data type).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h4&gt;Part IV: SigmaBell Blend Effect&lt;br /&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p&gt;Just like Triangular Effect, besides that the color transition appears to be more smooth.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Example 4: SigmaBell Blend Effect.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://lh3.google.com/image/michaelrawi/RjhWFvYEjOI/AAAAAAAAABo/kqzKXlNIm6w/sigmabell.JPG"/&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 638px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;br /&gt;&lt;tbody valign="top"&gt;&lt;br /&gt;&lt;tr style="BACKGROUND: #4f81bd"&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#f4f4f4;"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; lgb &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; LinearGradientBrush(&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle, Color.Blue, Color.Red, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;lgb.SetSigmaBellShape(0.5F, 1.0F)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;e.Graphics.FillRectangle(lgb, &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;h4&gt;Part V: Color Blend&lt;br /&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p&gt;My first introduction of this article was "Linear gradient brush is a one directional color transition between start and end colors". So, how many colors can be involved in this effect? No, not just 2 color. It could be many. How come we can involve many colors while the constructor only receives 2 colors? This question answered by using ColorBlend object.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Example 5: Rainbow from Color Blend&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://bp2.blogger.com/_nQtTPAMOLU8/RjBOePYEjLI/AAAAAAAAABI/qgRcOzkHmDg/s1600-h/rainbow.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5057628662967602354" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp2.blogger.com/_nQtTPAMOLU8/RjBOePYEjLI/AAAAAAAAABI/qgRcOzkHmDg/s320/rainbow.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;br /&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 638px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;br /&gt;&lt;tbody valign="top"&gt;&lt;br /&gt;&lt;tr style="BACKGROUND: #4f81bd"&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="color:#f4f4f4;"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; lgb &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; LinearGradientBrush(&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle, Color.Black, Color.Black, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt; cb &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; ColorBlend(6)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Dim&lt;/span&gt; f &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Decimal&lt;/span&gt; = 0.0F&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;cb.Colors = &lt;span style="color:blue;"&gt;New&lt;/span&gt; Color() {Color.Red, Color.Orange, Color.Yellow, Color.Green, Color.Blue, Color.Violet}&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;For&lt;/span&gt; i &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;Integer&lt;/span&gt; = 0 &lt;span style="color:blue;"&gt;To&lt;/span&gt; 5&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;cb.Positions(i) = i / 5&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Next&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;lgb.InterpolationColors = cb&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;e.Graphics.FillRectangle(lgb, &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;h4&gt;Part VI: Conclusion&lt;br /&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p&gt;Applying Linear Gradient Brush is not difficult that you can imagine. The problem only defining coordinates and position of the transition colors. Once you can handle it, the rest should be easy.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Happy programming.&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-9088294540871038029?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/9088294540871038029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=9088294540871038029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/9088294540871038029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/9088294540871038029'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/04/linear-gradient-brush.html' title='Linear Gradient Brush'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_nQtTPAMOLU8/RjBOePYEjLI/AAAAAAAAABI/qgRcOzkHmDg/s72-c/rainbow.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-3940056143895545607</id><published>2007-04-25T11:24:00.001+07:00</published><updated>2007-10-26T15:22:38.799+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='GDI+'/><title type='text'>Gradient Colors in GDI+</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;In programming, gradient is a transition color from a start point to end point. In my past with VB6, I have to modify each pixel to make a gradient within a container. Now with VB2005, you can make a gradient on a surface with a few lines of codes.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To creating a gradient, we need &lt;strong&gt;GradientBrush&lt;/strong&gt; object. There are 2 types of them: &lt;strong&gt;LinearGradientBrush&lt;/strong&gt; and &lt;strong&gt;PathGradientBrush&lt;/strong&gt;. I'll explain those two in next section.&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;The LinearGradientBrush&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;As it names, this method creates a linear gradient color, which means creates 1 way directional gradient. The directional depends on where do you set starting and destination point. There are 4 default destinations for this method which are: Horizontal, Vertical, Diagonal Forward, and Diagonal Backward.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Example: &lt;br&gt;&lt;b&gt;Linear Gradient with Horizontal direction, from Red to Blue and fill entire form.&lt;/b&gt;&lt;br&gt;&lt;img src="http://www.geocities.com/mick_rawi/LinearGradient.JPG"/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 638px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="BACKGROUND: #4f81bd"&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;p&gt;&lt;span style="color:white;"&gt;Code&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; lgb &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; LinearGradientBrush(&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle, Color.Red, Color.Blue, LinearGradientMode.Horizontal)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;e.Graphics.FillRectangle(lgb, &lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;The PathGradientBrush&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;Unlike LinearGradientBrush, the PathGradientBrush method has different way to call. First, it needs a GraphicsPath object.&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;GraphicsPath may be composed of any number of figures (subpaths). Each figure is either composed of a sequence of connected lines and curves or a geometric shape primitive. The starting point of a figure is the first point in the sequence of connected lines and curves. The ending point is the last point in the sequence. The starting and ending points of a geometric shape primitive are defined by the primitive specification. (Source: MSDN Library, December 2006)&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The PathGradientBrush color transition is different from LinearGradientBrush. It focused on a center and spread to the edges of GraphicsPath. If you want to modifiy the center coordinate, use CenterPoint property. Another important property is FocusScale, which determine how strong the transition from starting color to destination color. Also, PathGradientBrush allow you to make multiple color transition in one surface.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Example: &lt;br&gt;&lt;b&gt;Path Gradient with Red as center color and 3 colors (Blue,Yellow and Green) as surround colors.&lt;/b&gt;&lt;br&gt;&lt;img src="http://www.geocities.com/mick_rawi/PathGradient.JPG"/&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="WIDTH: 638px"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="BACKGROUND: #4f81bd"&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;p&gt;&lt;span style="color:white;"&gt;Code&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="BORDER-RIGHT: #4f81bd 1pt solid; PADDING-RIGHT: 7px; BORDER-TOP: medium none; PADDING-LEFT: 7px; BORDER-LEFT: #4f81bd 1pt solid; BORDER-BOTTOM: #4f81bd 1pt solid"&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; pth &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; GraphicsPath &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;pth.AddRectangle(&lt;span style="color:blue;"&gt;Me&lt;/span&gt;.ClientRectangle) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;Using&lt;/span&gt; pgb &lt;span style="color:blue;"&gt;As&lt;/span&gt; &lt;span style="color:blue;"&gt;New&lt;/span&gt; PathGradientBrush(pth)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;"&gt;pgb.CenterColor = Color.Red&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;pgb.SurroundColors = &lt;span style="color:blue;"&gt;New&lt;/span&gt; Color() {Color.Blue, Color.Yellow, Color.Green} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;e.Graphics.FillPath(pgb, pth)&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Using&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="color:blue;"&gt;End&lt;/span&gt; &lt;span style="color:blue;"&gt;Using&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-3940056143895545607?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/3940056143895545607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=3940056143895545607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/3940056143895545607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/3940056143895545607'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/04/gradient-colors-in-gdi.html' title='Gradient Colors in GDI+'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-8768529166113542273</id><published>2007-04-23T16:37:00.001+07:00</published><updated>2007-10-26T15:22:38.799+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='GDI+'/><title type='text'>Colors in GDI+</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;One of my most favorite for creating component is playing with colors. With colors, we can create fancy controls for our application and present an "eye candy" application for the user. In this articles, you will find a way to playing with color from using simple basic color to creating advanced gradient color.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Part I: The Brush Object&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;To make a color, we need a &lt;strong&gt;Brush&lt;/strong&gt; object from Graphics. There are 4 type of brush:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Solid Brush    : A plain color&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hatch Brush    : A color with hatch effect&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Texture Brush    : A texture filled object&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Gradient Brush    : A gradient color brush&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Part II: Simple brush&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;To apply a color to your drawing, you need a graphic object to draw. It can be a pen or a shape.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ex:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.geocities.com/mick_rawi/SimpleDraw.JPG"&gt;&lt;img src="http://www.geocities.com/mick_rawi/SimpleDraw.JPG" width=100% height=100%/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GDI+ has so many objects for displaying. They are:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Ellipses&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Rectangles&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Arcs (Arc is a portion of ellipse)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Beziers&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Curves&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Region&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Path&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Etc.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Conclusion&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;GDI+ is a good way for creating nice application UI, components or controls. With learning frequently, you can create any component you want. Your only limit is your creativity. In next section, I'll explain more complex way for manipulating colors using gradients.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-8768529166113542273?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/8768529166113542273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=8768529166113542273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/8768529166113542273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/8768529166113542273'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/04/colors-in-gdi.html' title='Colors in GDI+'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-8988200331984435099</id><published>2007-04-23T14:24:00.001+07:00</published><updated>2007-10-26T15:22:38.800+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='GDI+'/><title type='text'>Introduction to GDI+</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;GDI+ is a managed class from .NET Framework that provides function for drawing two-dimensional vector graphics, imaging, and typography. GDI stands for Graphical Device Interfaces and include in earlier Windows platform. GDI+ itself is the portion of Windows XP operating system and adding new features and optimized existing features.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GDI+ is one of most important things that you need to know when you're developing Windows Forms Application in .NET Framework, especially when you want to design a rich UI application, creating a customized component or user controls.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-size:100%;"&gt;The Basics&lt;br /&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;GDI+ contains of 3 sections which are:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Vector graphics (Lines, Curves and Shapes)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Images, Bitmaps and Metafiles&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Coordinates and Transformations&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;Note to Visual Basic 6.0 Users: You probably mentioned why there are no Line and Shape in toolbox area. That's because .NET Framework has replaced them with GDI+ function. You have to use GDI+ to drawing line and shape within the code.&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;GDI+ is a set of calls or procedure. So, in order to use it, you have to call those functions and passing the required parameters. Since you call a function, its effect can only be seen on runtime mode. You can't see them in design mode unlike VB6. Because you can't see anything in design mode, you have to input parameter and placed the coordinates precisely. That's a bit hard at start, but once you've mastered it, it will become very fun to use.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-size:100%;"&gt;Using GDI+&lt;br /&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;To use GDI+, you will need &lt;strong&gt;Graphics&lt;/strong&gt; object. Graphics is a managed interface for providing GDI+ functions. GDI+ class contains of these namespace:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;System.Drawing&lt;br /&gt;&lt;/li&gt;&lt;li&gt;System.Drawing.Drawing2D&lt;br /&gt;&lt;/li&gt;&lt;li&gt;System.Drawing.Imaging&lt;br /&gt;&lt;/li&gt;&lt;li&gt;System.Drawing.Text&lt;br /&gt;&lt;/li&gt;&lt;li&gt;System.Drawing.Printing&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For using them, there are 2 ways which are: &lt;em&gt;Object&lt;/em&gt;.&lt;strong&gt;CreateGraphics&lt;/strong&gt;, or in the &lt;em&gt;Paint&lt;/em&gt; event. The Paint event is consider a safer way to using graphics, since the graphics object itself consume a big memory resource, especially if you work wit a lot graphics object. Besides, my articles will mostly use Paint event as well.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-8988200331984435099?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/8988200331984435099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=8988200331984435099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/8988200331984435099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/8988200331984435099'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/04/introduction-to-gdi.html' title='Introduction to GDI+'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1394209710825810332.post-1225994879293237036</id><published>2007-04-23T11:34:00.000+07:00</published><updated>2007-04-23T11:57:14.660+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Welcome'/><title type='text'>Openings</title><content type='html'>Welcome to Visual Basic 2005 Corner.&lt;br /&gt;&lt;br /&gt;In this site, you will find articles about Visual Basic 2005. The topic can be vary from programming, .NET technology review, Tip and tricks and so on. The main reason for me to create this site is because I want to share my knowledge with others, especially who is work with Visual Basic 2005.&lt;br /&gt;&lt;br /&gt;Finally, I hope you can find something usefull in this site and you can improved your skills after read articles in this site. Happy reading.&lt;br /&gt;&lt;br /&gt;Regards&lt;br /&gt;&lt;br /&gt;Michael Rawi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1394209710825810332-1225994879293237036?l=vbcorner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbcorner.blogspot.com/feeds/1225994879293237036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1394209710825810332&amp;postID=1225994879293237036' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/1225994879293237036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1394209710825810332/posts/default/1225994879293237036'/><link rel='alternate' type='text/html' href='http://vbcorner.blogspot.com/2007/04/openings.html' title='Openings'/><author><name>Michael</name><uri>http://www.blogger.com/profile/10502062677599279705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
