<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Component Factory</title>
	
	<link>http://www.componentfactory.com/blog</link>
	<description>Windows Forms Controls for .NET Smart Client Applications</description>
	<lastBuildDate>Mon, 05 Sep 2011 10:28:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PhilWrightComponentFactory" /><feedburner:info uri="philwrightcomponentfactory" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><item>
		<title>Change in status</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/SlyD92TiKSg/</link>
		<comments>http://www.componentfactory.com/blog/2011/09/change-in-status/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 10:28:26 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=716</guid>
		<description><![CDATA[I know it has been a little while since I last posted. This is because I have now take a contract job and so have been working full time for the last six weeks. This will continue for at least another couple of months and if they offer a contract extension I will certainly accept [...]]]></description>
			<content:encoded><![CDATA[<p>I know it has been a little while since I last posted. This is because I have now take a contract job and so have been working full time for the last six weeks. This will continue for at least another couple of months and if they offer a contract extension I will certainly accept it.</p>
<p>As anyone in the component development industry will tell you the demand for WinForms controls has been on the slide for a few years. It has not been a crash, with sales falling off a cliff, but the demand peaked a few years ago and it has been slowly running downhill. In itself this is not surprising as WPF is capable of taking the place of WinForms for desktop development work. Plus you have the inexorable rise of Internet applications with Silverlight providing a rich web application platform for .NET developers.</p>
<p>A year ago sales were enough to pay me the same as a senior developer position. That is no longer the case and with WinForms sales trending downward that is not going to change. Hence I have entered the job market again. This does not mean the end of Krypton. I will still be working on Krypton and making new releases. But it does perhaps mean the end of major new additions. It is going to be tough to write a major component such as a Grid control when you are working on it only in your spare time.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/SlyD92TiKSg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/09/change-in-status/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/09/change-in-status/</feedburner:origLink></item>
		<item>
		<title>Going it alone</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/7b16i_mEOc4/</link>
		<comments>http://www.componentfactory.com/blog/2011/07/going-it-alone/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 21:32:08 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=714</guid>
		<description><![CDATA[After some weeks working on the PFGrid.NET code base I have unfortunately come to a realisation I did not want to make. The full list of features I want to make available in a Krypton grid control are just not possible with that code. I started work on updating the design but it has become [...]]]></description>
			<content:encoded><![CDATA[<p>After some weeks working on the PFGrid.NET code base I have unfortunately come to a realisation I did not want to make. The full list of features I want to make available in a Krypton grid control are just not possible with that code. I started work on updating the design but it has become obvious that it would be better to start from scratch than try to alter the existing design. So unfortunately I have decided to not use the PFGrid after all. So instead I need to build my own from scratch. A big job but sometimes there is nothing for it but to roll up your sleeves and get stuck in.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/7b16i_mEOc4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/07/going-it-alone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/07/going-it-alone/</feedburner:origLink></item>
		<item>
		<title>PFGrid.NET Licensing Agreement</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/nvr7ub9rPUM/</link>
		<comments>http://www.componentfactory.com/blog/2011/06/pfgrid-net-licensing-agreement/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 05:15:22 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=709</guid>
		<description><![CDATA[It gives me great pleasure to announce an agreement has been reached to license the PFGrid.NET control for use within the Krypton Suite. There have been many requests for a high quality grid within the Krypton Suite and this will now be possible by Kryptonizing the excellent PFGrid.NET. It has all the features you would [...]]]></description>
			<content:encoded><![CDATA[<p>It gives me great pleasure to announce an agreement has been reached to license the PFGrid.NET control for use within the Krypton Suite. There have been many requests for a high quality grid within the Krypton Suite and this will now be possible by Kryptonizing the excellent PFGrid.NET. It has all the features you would expect such as grouping, filtering, sorting, tree list mode and so forth.</p>
<p>You can check out the grid in more detail by visiting the PFGrid.NET <a href="http://winforms.pfgrid.com/Index_Dotnet.aspx">website</a>. I will be Kryptonizing the control over the next few weeks so that it has the same look and feel as the rest of the Krypton controls and uses the palette system for obtaining appearance information. I will blog about progress as I go along.</p>
<p>Here are just a couple of pictures&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/PFGrid1.jpg" alt="" /></p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/PFGrid2.jpg" alt="" /></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/nvr7ub9rPUM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/06/pfgrid-net-licensing-agreement/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/06/pfgrid-net-licensing-agreement/</feedburner:origLink></item>
		<item>
		<title>KryptonTreeView Nodes</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/3uEIl5ahIIg/</link>
		<comments>http://www.componentfactory.com/blog/2011/05/kryptontreeview-nodes/#comments</comments>
		<pubDate>Tue, 31 May 2011 03:04:16 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=704</guid>
		<description><![CDATA[Drawing the tree nodes is much tricker than it might sound. When you perform custom drawing of the entire node it does not modify how the mouse interacts with the node itself and so you need to ensure that the drawing is aligned with the expected mouse locations. For example, when drawing check boxes I [...]]]></description>
			<content:encoded><![CDATA[<p>Drawing the tree nodes is much tricker than it might sound. When you perform custom drawing of the entire node it does not modify how the mouse interacts with the node itself and so you need to ensure that the drawing is aligned with the expected mouse locations. For example, when drawing check boxes I must ensure that I draw them in the exact pixel offset from the left of the control. Otherwise they will look nice but the users&#8217; clicks will not match the drawn location and so the interaction will not work as expected.</p>
<p>Here you can see the drawing of check boxes and how the highlight for the selected/tracking node is immediately adjacent to the check box itself. This is not very pretty and I would prefer a pixel gap between the check box and the highlighting but this is not possible because that is the method expected by the tree control.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TreeViewCB.png" alt="" /></p>
<p>You can assign an <em>ImageList </em>to the <em>KryptonTreeControl </em>and then use the per-node image index to draw images by the nodes. Luckily the standard tree does have a gap between the right of the image and the node highlighting so the appearance looks tidier than for check boxes.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TreeViewI.png" alt="" /></p>
<p>Also implemented is the use of the <em>StateImageList </em>that is used to provide an optional per-node image at the left of the node drawing. In this example I used set this up on the top two nodes only.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TreeViewIS.png" alt="" /></p>
<p>I honour the <em>BackColor</em>, <em>ForeColor </em>and <em>NodeFont </em>overrides that are defined per-node. This allows you to provide a custom look for each node to reflect status.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TreeViewN.png" alt="" /></p>
<p>To make like a little easier for developers I have added a new class called <em>KryptonTreeNode </em>that derives from the standard <em>TreeNode </em>class. It adds an extra property called <em>LongText </em>that is an extra string that will be drawn when defined to the right of the standard node text. It also includes a <em>LongForeColor </em>and <em>LongNodeFont </em>pair of overrides allowing the l0ng text to be drawn differently.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TreeViewNL.png" alt="" /></p>
<p>Note that apart from the KryptonTreeNode there is no new functionality in the control. It is really just a standard TreeView with some custom drawing and so any requests for new features will not be possible. It is just a TreeView!</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/3uEIl5ahIIg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/05/kryptontreeview-nodes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/05/kryptontreeview-nodes/</feedburner:origLink></item>
		<item>
		<title>KryptonTreeView Lines</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/JYIQCbz7-zo/</link>
		<comments>http://www.componentfactory.com/blog/2011/05/kryptontreeview-lines/#comments</comments>
		<pubDate>Tue, 24 May 2011 04:38:06 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=702</guid>
		<description><![CDATA[I have started the process of creating a Kryptonized version of the TreeView control. As with many of the Krypton controls in the Toolkit it works by using the custom drawing ability of the standard TreeView control. So it will not have any new functionality but should draw in a manner consistent with the rest [...]]]></description>
			<content:encoded><![CDATA[<p>I have started the process of creating a Kryptonized version of the TreeView control. As with many of the Krypton controls in the Toolkit it works by using the custom drawing ability of the standard TreeView control. So it will not have any new functionality but should draw in a manner consistent with the rest of the Krypton controls.</p>
<p>So far I have implemented drawing the node text and the tree plus/minus nodes and lines. You can see two examples below, the first using the Office 2010 Blue palette and the second the professional palette.</p>
<p><img class="alignnone" title="KryptonTreeView" src="http://www.componentfactory.com/blog/data/upimages/TreeView11.png" alt="" width="217" height="226" /></p>
<p><img class="alignnone" title="KryptonTreeView" src="http://www.componentfactory.com/blog/data/upimages/TreeView12.png" alt="" width="214" height="223" /></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/JYIQCbz7-zo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/05/kryptontreeview-lines/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/05/kryptontreeview-lines/</feedburner:origLink></item>
		<item>
		<title>Redgate Blunder?</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/vU424wflZQg/</link>
		<comments>http://www.componentfactory.com/blog/2011/05/redgate-blunder/#comments</comments>
		<pubDate>Thu, 12 May 2011 15:00:49 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=696</guid>
		<description><![CDATA[First some background. Unless you are new to .NET development you will have heard of and probably used the excellent .NET Reflector tool that was written some years ago by Lutz Roeder. It takes a .NET assembly and does a good job of decompiling it into C#. It has many more features than just this [...]]]></description>
			<content:encoded><![CDATA[<p><strong>First some background.</strong><br />
Unless you are new to .NET development you will have heard of and probably used the excellent .NET Reflector tool that was written some years ago by <a href="http://www.lutzroeder.com/">Lutz Roeder</a>. It takes a .NET assembly and does a good job of decompiling it into C#. It has many more features than just this but that is the core functionality. I have used it many times to help me understand how the base classes work in WinForms. In August 2008 Lutz sold .NET Reflector to <a href="http://www.red-gate.com/">Red Gate Software</a> who continued to provide a free version but they also developed extra features that became commercial versions.</p>
<p><strong>Show Me The Money</strong></p>
<p>On Feb 2nd 2011 they announced that they would be charging $35 for the tool. When a product has been available for many years for free the market expects it to remain free. Especially when Lutz sold it to Red Gate and the impression people received at the time was that a version of  it would remain forever free.</p>
<p>This has created some backlash from developers, not all developers, but a vocal minority who feel they have been bait and switched. More importantly it created a hole in the market at the free price point. Two commercial companies have jumped into that space with <a href="http://www.telerik.com/products/decompiling.aspx">JustDecompile</a> from Telerik and <a href="http://www.jetbrains.com/decompiler/">dotPeek </a>from JetBrains. Both of these are free. There is also an open source project called <a href="http://wiki.sharpdevelop.net/ILSpy.ashx">ILSpy</a> that is making progress in replicating .NET Reflector functionality.</p>
<p><strong>Back Flip</strong><br />
In response Red Gate have backtracked slightly with the following <a href="http://www.reflector.net/2011/04/why-we-reversed-some-of-our-reflector-decision/">announcement</a>. Basically it says that existing users of .NET Reflector can continue using version 6.8 for free into the future but all new customers will still need to pay. You can see the <a href="http://www.reflector.net/">pricing </a>for new customers here. This whole flip flop has really damaged the reputation of Red Gate.</p>
<p>It has also opened up a free for all where alternative tools will be developed when previously no one considered it worthwhile. I wonder if in a couple of years this will all be forgotten or will Red Gate look back and rue the decisions they made?</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/vU424wflZQg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/05/redgate-blunder/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/05/redgate-blunder/</feedburner:origLink></item>
		<item>
		<title>Krypton Suite 4.3.2 Released</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/eezCv_et2yU/</link>
		<comments>http://www.componentfactory.com/blog/2011/05/krypton-suite-4-3-2-released/#comments</comments>
		<pubDate>Fri, 06 May 2011 05:11:15 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=692</guid>
		<description><![CDATA[Another maintenance release containing fixes for the Krypton Toolkit and Krypton Ribbon. The biggest change is the inclusion of help for Visual Studio 2010 SP1. Note that you do need the SP1 for Visual Studio 2010 in order to see the help. If you have not already installed it then you should do so before [...]]]></description>
			<content:encoded><![CDATA[<p>Another maintenance release containing fixes for the Krypton Toolkit and Krypton Ribbon.</p>
<p>The biggest change is the inclusion of help for Visual Studio 2010 SP1. Note that you do need the SP1 for Visual Studio 2010 in order to see the help. If you have not already installed it then you should do so before upgrading Krypton.</p>
<p>Font measuring has been fixed for the Input/Message/Task dialog boxes. The Validating and Validated events are now fired for the input controls. There are four new label styles that speed up development as well as numerous crash fixes. Check out the Toolkit and Ribbon change list documents using the links below to see a full list of changes.</p>
<p><a title="Download Kryption 4.3.2" href="http://www.componentfactory.com/downloads/KryptonSuite432.zip">Download 4.3.2</a></p>
<p><a title="Toolkit Change List" href="http://www.componentfactory.com/downloads/changeLists/KryptonToolkitChangeList.doc">Toolkit Change List</a><br />
<a title="Ribbon Change List" href="http://www.componentfactory.com/downloads/changeLists/KryptonRibbonChangeList.doc">Ribbon Change List</a></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/eezCv_et2yU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/05/krypton-suite-4-3-2-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/05/krypton-suite-4-3-2-released/</feedburner:origLink></item>
		<item>
		<title>Bold and Italic Styles</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/oBppvJSpDSE/</link>
		<comments>http://www.componentfactory.com/blog/2011/05/bold-and-italic-styles/#comments</comments>
		<pubDate>Thu, 05 May 2011 04:22:14 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=689</guid>
		<description><![CDATA[A good suggestion turned up on the forums the other day. Why not add Bold and Italic label styles to complement the existing Normal (Control) and Normal (Panel) styles. Given that many applications need to make these small visual changes it seemed like a good idea and easy to add. So here you are&#8230;]]></description>
			<content:encoded><![CDATA[<p>A good suggestion turned up on the forums the other day. Why not add Bold and Italic label styles to complement the existing Normal (Control) and Normal (Panel) styles. Given that many applications need to make these small visual changes it seemed like a good idea and easy to add. So here you are&#8230;</p>
<p><img class="alignnone" title="Bold and Italic Labels" src="http://www.componentfactory.com/blog/data/upimages/BoldItalicLables.png" alt="Bold and Italic Labels" width="231" height="96" /></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/oBppvJSpDSE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/05/bold-and-italic-styles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/05/bold-and-italic-styles/</feedburner:origLink></item>
		<item>
		<title>Deep nesting and redrawing</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/Rmdz0UkqhrY/</link>
		<comments>http://www.componentfactory.com/blog/2011/05/deep-nesting-and-redrawing/#comments</comments>
		<pubDate>Wed, 04 May 2011 04:04:47 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=684</guid>
		<description><![CDATA[I &#8216;ve had a couple of bug reports for the incorrect drawing of Krypton controls when there is a deep nesting of controls under Windows 7 64bit. You can see what I mean in the following image that shows a test application that has 8 KryptonNavigator instances all inside each other. I spent a couple [...]]]></description>
			<content:encoded><![CDATA[<p>I &#8216;ve had a couple of bug reports for the incorrect drawing of <em>Krypton </em>controls when there is a deep nesting of controls under <em>Windows 7 </em>64bit. You can see what I mean in the following image that shows a test application that has 8 <em>KryptonNavigator </em>instances all inside each other.</p>
<p><img title="Incorrect drawing" class="alignnone" src="http://www.componentfactory.com/blog/data/upimages/OSBUG1.png" alt="Incorrect drawing" width="326" height="356" /></p>
<p>I spent a couple of different attempts investigating this with no luck.  No matter what I did and how I looked at the scenario the <em>Krypton </em>code  did not seem to be doing anything wrong. Fortunately someone spotted a Microsoft Knowledge Base article describing this issue and presenting a workaround. You can read it <a title="KB953934" href="http://support.microsoft.com/kb/953934">here</a>.</p>
<p>The solution to the above problem was to add the following new control and then replace the 4th instance of the <em>KryptonNavigator </em>with the new <em>KryptonNavigatorDelay</em> class.</p>
<pre> public class KryptonNavigatorDelay : KryptonNavigator
 {
   protected override void OnSizeChanged(EventArgs e)
   {
     if (Handle != null)
       BeginInvoke((MethodInvoker)delegate
          { base.OnSizeChanged(e); });
   }
 }</pre>
<p>This results in the following appearance when resizing the window at runtime.</p>
<p><img title="Correct drawing" class="alignnone" src="http://www.componentfactory.com/blog/data/upimages/OSBUG2.png" alt="Correct drawing" width="326" height="355" /></p>
<p>The issue is with the operating system and seems to manifest  itself under <em>Windows 7 </em>64bit when you have a depth of around 16 deep.  Testing with various different controlsdoes not seem to make much difference in the depth required to see problems. Apparently the same problem can occur under 32bit operating systems but not until you have a much deeper level of nesting. Hence you are only likely to have encountered this problem under 64bit.</p>
<p>I cannot simply at the above code to every <em>Krypton </em>container because the solution causes a delay when drawing the control as the <em>BeginInvoke </em>delays execution of the delegate until the current windows message has been completed. So if you experience the issue then you need to check your nesting depth and look at implementing the work around at an appropriate level in the control hierarchy.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/Rmdz0UkqhrY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/05/deep-nesting-and-redrawing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/05/deep-nesting-and-redrawing/</feedburner:origLink></item>
		<item>
		<title>Visual Studio 10 Help</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/Cwmi9bsKpcQ/</link>
		<comments>http://www.componentfactory.com/blog/2011/05/visual-studio-10-help/#comments</comments>
		<pubDate>Wed, 04 May 2011 03:03:31 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=680</guid>
		<description><![CDATA[I recently purchased the latest version of HelpStudio from Innovasys so that I could compile the Krypton help into the new format used by Visual Studio 2010. After a few teething problems it is now working as you can see below&#8230; Visual Studio 2010 SP1 Note however that you need to have SP1 for Visual [...]]]></description>
			<content:encoded><![CDATA[<p>I recently purchased the latest version of <em>HelpStudio </em>from <em>Innovasys </em>so that I could compile the <em>Krypton </em>help into the new format used by <em>Visual Studio 2010</em>. After a few teething problems it is now working as you can see below&#8230;</p>
<p><img class="alignnone" title="Microsoft Help Viewer" src="http://www.componentfactory.com/blog/data/upimages/MHV11.png" alt="Microsoft Help Viewer" width="382" height="273" /></p>
<p><strong><br />
Visual Studio 2010 SP1</strong><br />
Note however that you need to have <em>SP1 </em>for <em>Visual Studio 2010</em> as the <em>SP1 </em>includes an update to the <em>Microsoft Helper Viewer</em> that includes a standalone browser as shown above. This should not be a major issue as developers should be using the latest version anyway.</p>
<p><strong>Installer Size</strong><br />
Another downside is that the installer has ballooned because it includes the extra help so now it is ~116MB instead of the ~67MB before. Given that a large chunk of the older size was the help build used for <em>Visual Studio 2005/2008</em> and you can see that something like 90% of the total installer size is actually just help.</p>
<p><strong>HelpStudio Tips</strong><br />
For those that are also using the <em>HelpStudio </em>product I can pass along a couple of tips. The output from the <em>HelpStudio </em>build is a <em>.mshc </em>file that contains all the help pages.</p>
<p>What is not obvious is that the <em>.mshc</em> file will not work directly if you want to perform a silent install. We don&#8217;t want to require the user to start the help manager and start browsing for the <em>.mshc</em> file so it can be installed into the help system. So instead we want to run a silent install at the end of the <em>Krypton </em>installer.</p>
<p>So you need to take the <em>.mshc</em> file and turn it into a <em>cab </em>file by using the <em>makecab </em>utility. Then you need to sign the cab file using the <em>signtool </em>utility. Pass this signed cab into the silent install and then your good to go.</p>
<p>Another gotcha is the <em>Microsoft Help Viewer</em> will not add a top level node for your help collection, which is what the older help system did, and so your table of contents in <em>HelpStudio </em>should have a single top level node and then everything else appears as a child of that.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/Cwmi9bsKpcQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/05/visual-studio-10-help/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/05/visual-studio-10-help/</feedburner:origLink></item>
		<item>
		<title>Validating and Validated</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/FpWnPnxO8PY/</link>
		<comments>http://www.componentfactory.com/blog/2011/02/validating-and-validated/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 03:22:31 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=676</guid>
		<description><![CDATA[Controls such as the TextBox fire Validating and Validated events as part of the validation mechanism that is provided by WinForms. This allows you to prevent the focus leaving a control if there is an error in that data entry field. Unfortunately the majority of the Krypton Toolkit controls do not fire these events directly. [...]]]></description>
			<content:encoded><![CDATA[<p>Controls such as the <em>TextBox</em> fire <em>Validating </em>and <em>Validated </em>events as part of the validation mechanism that is provided by WinForms. This allows you to prevent the focus leaving a control if there is an error in that data entry field. Unfortunately the majority of the Krypton Toolkit controls do not fire these events directly.</p>
<p>Most Toolkit controls such as the <em>KryptonTextBox</em> are actually made up of two parts. The <em>KryptonTextBox</em> itself is a container that has a single child control which is just a standard <em>TextBox</em>. This is done so that the container can draw the border around the inner control and then the inner control can be instructed to draw without a border. An approach required so that the correct border is drawn according to the Krypton Palette definition. It does however have the complication that many of the events of interest are fired by the inner control. To get around this the container hooks the events of the inner control and then fires them again from itself. So as a developer you just hook the container and it fires the events you expect, without most developers realising that the event actually originated from the inner control.</p>
<p>Turns out that I missed a couple of events. So I have now updated the source code so that the <em>Validating</em> and <em>Validated</em> events from inner controls are now fired from the container. This makes it much easier to get the validation mechanism to work. The controls affected by this are&#8230;</p>
<ul>
<li>KryptonListBox</li>
<li>KryptonCheckedListBox</li>
<li>KryptonTextBox</li>
<li>KryptonMaskedTextBox</li>
<li>KryptonRichTextBox</li>
<li>KryptonNumericUpDown</li>
<li>KryptonDomainUpDown</li>
<li>KryptonComboBox</li>
</ul>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/FpWnPnxO8PY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/02/validating-and-validated/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/02/validating-and-validated/</feedburner:origLink></item>
		<item>
		<title>Krypton Suite 4.3.1 Released</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/EgT8f1SxB6I/</link>
		<comments>http://www.componentfactory.com/blog/2011/01/krypton-suite-4-3-1-released/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 02:14:20 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=674</guid>
		<description><![CDATA[This is a maintenance release containing fixes for various Krypton Toolkit controls. Of particular interest are crashes that have been fixed so that the Krypton components work under 64bit operating systems. Return values from some platform invoke calls were assumed to be 32bit when they were in fact 64bit. Check out the Toolkit change list document using the link [...]]]></description>
			<content:encoded><![CDATA[<p>This is a maintenance release containing fixes for various Krypton Toolkit controls.</p>
<p>Of particular interest are crashes that have been fixed so that the Krypton components work under 64bit operating systems. Return values from some platform invoke calls were assumed to be 32bit when they were in fact 64bit. Check out the Toolkit change list document using the link below to see a full list of changes.</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite431.zip">Download 4.3.1</a></p>
<p><a href="http://www.componentfactory.com/downloads/changeLists/KryptonToolkitChangeList.doc">Toolkit Change List</a></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/EgT8f1SxB6I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2011/01/krypton-suite-4-3-1-released/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2011/01/krypton-suite-4-3-1-released/</feedburner:origLink></item>
		<item>
		<title>Krypton Suite 4.3 Released</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/3d3igdQeX1Y/</link>
		<comments>http://www.componentfactory.com/blog/2010/09/krypton-4-3-released/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 04:41:18 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=669</guid>
		<description><![CDATA[Our latest release includes three new components for the Toolkit. All of these are modal dialogs that are intended to replace your use of the existing message box, task dialog and input box forms. So now your dialogs can be consistent with the rest of the application by also using the Krypton palette styling. The switch to using the [...]]]></description>
			<content:encoded><![CDATA[<p>Our latest release includes three new components for the <em>Toolkit</em>. All of these are modal dialogs that are intended to replace your use of the existing message box, task dialog and input box forms. So now your dialogs can be consistent with the rest of the application by also using the <em>Krypton</em> palette styling.</p>
<p>The switch to using the <em>KryptonMessageBox</em> is very easy because you only need to perform a <em>Find/Replace</em> of the phrase <em>MessageBox.Show</em> with <em>KryptonMessageBox.Show</em>. This is because the exact same static <em>Show</em> methods have been used in the <em>Krypton</em> implementation as exist for the <em>MessageBox</em> which ensures an easy upgrade path. Check out the three new samples that can be accessed from the <em>KryptonExplorer</em> in order to see them working and experiment with the different settings that are possible.</p>
<p>Also present in this release is an important bug fix. Under Windows 7 the showing of a dialog that is derived from <em>KryptonForm</em> can fail. The bug is very nasty in that the dialog simply fails to be drawn on the screen, which is likely to be very confusing for your users. This has now been fixed. For a full list of changes you should check out the change lists that are installed.</p>
<p><strong>New Components</strong><br />
- KryptonMessageBox<br />
- KryptonTaskDialog<br />
- KryptonInputBox</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite430.zip">Download 4.3</a></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/3d3igdQeX1Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/09/krypton-4-3-released/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/09/krypton-4-3-released/</feedburner:origLink></item>
		<item>
		<title>KryptonInputBox</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/NxCM5uwCV4o/</link>
		<comments>http://www.componentfactory.com/blog/2010/09/kryptoninputbox/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 03:11:57 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=666</guid>
		<description><![CDATA[It&#8217;s not often I add something to make VB programmers happy, but today I have gone crazy and added a component called KryptonInputBox that is a Kryptonized version of the InputBox that VB.NET programmers take for granted. It is a very simple dialog box that allows the user to enter a string. There is little [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s not often I add something to make VB programmers happy, but today I have gone crazy and added a component called <em>KryptonInputBox</em> that is a <em>Kryptonized</em> version of the <em>InputBox</em> that VB.NET programmers take for granted. It is a very simple dialog box that allows the user to enter a string. There is little customization possible, you can only alter the window title, the user prompt and the default value that populates the text box.</p>
<p>You can use it in the following way&#8230;</p>
<pre><span style="color: #0000ff;">   string result = KryptonInputBox.Show("Prompt",
                                        "Window Title",
                                        "Response");</span></pre>
<p>This results in the following appearance&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/IB.jpg" alt="" /></p>
<p>Don&#8217;t say I never do anything for the VB.NET community!</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/NxCM5uwCV4o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/09/kryptoninputbox/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/09/kryptoninputbox/</feedburner:origLink></item>
		<item>
		<title>KryptonTaskDialog</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/1548dqo1gfc/</link>
		<comments>http://www.componentfactory.com/blog/2010/09/kryptontaskdialog/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 02:34:49 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=664</guid>
		<description><![CDATA[Now that we have added a Kryptonized version of the MessageBox it seems reasonable to keep that theme going and add a Krypton version of the TaskDialog. For those not familiar with the TaskDialog it&#8217;s a feature added with Windows Vista and is essentially a MessageBox on steroids. I would however point out that our Krypton version [...]]]></description>
			<content:encoded><![CDATA[<p>Now that we have added a <em>Kryptonized</em> version of the <em>MessageBox</em> it seems reasonable to keep that theme going and add a <em>Krypton</em> version of the <em>TaskDialog. </em>For those not familiar with the <em>TaskDialog</em> it&#8217;s a feature added with <em>Windows Vista</em> and is essentially a <em>MessageBox</em> on steroids.</p>
<p>I would however point out that our <em>Krypton</em> version is not intended as an exact copy. It is very similar but it might not contain absolutely everything that is possible with the operating system version of the dialog. However, something is better than nothing and so here is what we have.</p>
<p><strong>Basic Settings<br />
</strong>The most basic settings allow for a window title, main instructions, content details, associated icon and the specification of dialog buttons.  You can omit any of these values in which case they will not be displayed. Here is an example of the dialog when they have all been specified with simple values&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TDBasic.jpg" alt="" /></p>
<p><strong>CheckBox Settings</strong><br />
You can optionally define a <em>CheckBox</em> that is presented in the same area as the dialog buttons. You can define the text for the control as well as the initial checked state. This is more useful than it might first appear. A common scenario is to present warning messages to the user, but ff the user finds these annoying the checkbox could be checked to indicate that the warnings should be suppressed in the future. Or maybe the checkbox is used to indicate that the selected option should always be used in the future without the need to ask again.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TDCheckBox.jpg" alt="" /></p>
<p><strong>Footer Settings</strong><br />
Additional information can be shown to the user in the footer area of the dialog. You can set an image, footer text and hyperlink text for this area or any combination of the three values. This is very useful if you want to allow additional help documentation or webpages to be shown in response to a hyperlink being pressed.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TDFooter.jpg" alt="" /></p>
<p><strong>Radio Button</strong><br />
Use the radio button feature to present a multiple choice to the user. A simple collection property is used to specify the list of possible options and the selected value is available as a property on the <em>KryptonTaskDialog</em> class when the dialog has been removed.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TDRadio.jpg" alt="" /></p>
<p><strong>Command Settings</strong><br />
This is similar to the radio buttons except the choices are presented as a set of buttons. Each button is assigned a <em>DialogResult</em> value and so on return from the dialog being dismissed you can check the return <em>DialogResult</em> to see which command was selected by the user.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TDCommand.jpg" alt="" /></p>
<p>As an extreme example you could even specify all the possible features and show the following&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/TDAll.jpg" alt="" /></p>
<p>&#8230;although I am not sure your users would appreciate such a monstrosity!</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/1548dqo1gfc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/09/kryptontaskdialog/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/09/kryptontaskdialog/</feedburner:origLink></item>
		<item>
		<title>KryptonMessageBox</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/FZmJ8xLNkw0/</link>
		<comments>http://www.componentfactory.com/blog/2010/08/kryptonmessagebox/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 23:52:49 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=662</guid>
		<description><![CDATA[Due to popular demand, well at least 2 people anyway, I have added a Kryptonized version of the standard windows MessageBox funtionality. In order to make it fully backward compatible I have provided a set of static methods that have identical parameters to the existing MessageBox methods. So you need only perform a search and [...]]]></description>
			<content:encoded><![CDATA[<p>Due to popular demand, well at least 2 people anyway, I have added a <em>Kryptonized</em> version of the standard windows <em>MessageBox</em> funtionality. In order to make it fully backward compatible I have provided a set of static methods that have identical parameters to the existing <em>MessageBox</em> methods. So you need only perform a search and replace of the existing <em>MessageBox.Show</em> methods so they become <em>KryptonMessageBox.Show</em> instead.</p>
<p>Here you have some examples of the appearance using different palettes&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/KMB.png" alt="" /></p>
<p>The text used in the buttons is localizable and exposed via the <em>KryptonManager</em> component. So if you need to define text for non-English systems you can update the new <em>GlobalStrings</em> property of the manager and all message boxes will then use those updated strings.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/FZmJ8xLNkw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/08/kryptonmessagebox/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/08/kryptonmessagebox/</feedburner:origLink></item>
		<item>
		<title>Missing Modal Windows</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/T-UYw1MYmYM/</link>
		<comments>http://www.componentfactory.com/blog/2010/08/missing-modal-windows/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 01:57:07 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=658</guid>
		<description><![CDATA[If you are using a Krypton application on Windows 7 machines then you need to be aware of a potential bug that is quite nasty. When using ShowDialog to show a window that derives from KryptonForm the window will sometimes not appear. This only seems to be the case when you have the Desktop Window Manager (DWM) [...]]]></description>
			<content:encoded><![CDATA[<p>If you are using a <em>Krypton</em> application on Windows 7 machines then you need to be aware of a potential bug that is quite nasty. When using <em>ShowDialog</em> to show a window that derives from <em>KryptonForm</em> the window will sometimes not appear. This only seems to be the case when you have the <em>Desktop Window Manager</em> (<em>DWM</em>) enabled. It will effectively be invisible even though it has been successfully created.</p>
<p>For those now aware, the <em>DWM</em> is responsible for the <em>Aero </em>theme (sometimes known as the glass). Needless to say, your customers are going to be confused if a window is just plain missing. In fact your developers are going to be pretty confused as well.</p>
<p>The workaround for this is quite simple. You need to hook into the <em>Shown</em> event of the modal window and then add the following call to the <em>PerformNeedPaint</em> method:-</p>
<pre><span style="color: #0000ff;">    private void Form1_Shown(object sender, EventArgs e)
    {
        PerformNeedPaint(true);
    }</span></pre>
<p>I expect to release a maintenance release in about three weeks that will include this fix along with any other fixes and changes that accumulate between now and then.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/T-UYw1MYmYM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/08/missing-modal-windows/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/08/missing-modal-windows/</feedburner:origLink></item>
		<item>
		<title>New Docking Events</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/jhaJs7L9Gjo/</link>
		<comments>http://www.componentfactory.com/blog/2010/08/new-docking-events/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 05:22:02 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=655</guid>
		<description><![CDATA[External Dragging I have recently been asked by several different users of Krypton about how to start a drag operation from an external source and allow it to be dragged into the docking area. For example, you might have a TreeView with nodes and when the user drags one of those nodes you want to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>External Dragging</strong></p>
<p>I have recently been asked by several different users of <em>Krypton</em> about how to start a drag operation from an external source and allow it to be dragged into the docking area. For example, you might have a <em>TreeView</em> with nodes and when the user drags one of those nodes you want to automatically create a new page and have it draggable into the docking area of the application.</p>
<p>This seems like a very reasonable requirement but it was not really possible to get it working fully and correctly. With the introduction of two new events this is now possible:-</p>
<p> - <em>KryptonDockingManager.DoDragDockEnd<br />
</em> - <em>KryptonDockingManager.DoDragDockQuit</em></p>
<p>It has always been possible to start the drag operation in the scenario described above, you just need to call the <em>KryptonDockingManager.DoDragDrop</em> and pass in your newly created <em>KryptonPage</em> instance. Unfortunately there was no way to get feedback on when the drag operation was finished and if it succeeded or failed. Without this feedback it is hard, if not impossible, to correctly handle the operation. So now the <em>DoDragDockEnd</em> and <em>DoDragDockQuit</em> allow you to get the result of the dragging operation.</p>
<p>To make it easier to see how to actually implement this there is a new sample called <em>External Drag To Docking</em> where you can see the full source code. In particular the code inside the <em>TreeView</em> shows how to start the drag operation and also how to clean up afterwards using the new events.</p>
<p>Here you can see the new sample with the mouse about to drag the <em>Document</em> node of the tree&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DragDock1.jpg" alt="KrytonDocking External Drag" /></p>
<p>Once the drag starts you get a new docking page titled <em>Document 3</em> and it has been created as a floating window. The user then drag this to any part of the docking system or just leave it as a floating window if preferred.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DragDock2.jpg" alt="KrytonDocking External Drop" /></p>
<p><strong>AutoHidden Window States</strong></p>
<p>Another common request has been an event to indicate when an <em>AutoHidden</em> window has been scrolled out into view so that additional actions can then be taken, such as updating the contents of the page. To allow this the following new event has been added:-</p>
<p> - <em>KryptonDockingManager.AutoHiddenShowStateChanged</em></p>
<p>The event provides a parameter that indicates the <em>AutoHidden</em> page has changed to one of these four possible states:-</p>
<p>- <em>SlidingOut<br />
</em>- <em>Showing<br />
</em>- <em>SlidingIn</em><br />
- <em>Hidden</em></p>
<p>The events would usually occur in the same order that they are listed above. But note that sometimes the <em>SlidingOut</em> and <em>SlidingIn</em> do not occur because an action has caused the page to shift directly from <em>Hidden</em> to <em>Showing</em> or vice-versa. So I recommend you always hook and process the <em>Hidden</em> and <em>Showing</em> events.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/jhaJs7L9Gjo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/08/new-docking-events/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/08/new-docking-events/</feedburner:origLink></item>
		<item>
		<title>Krypton Suite 4.2 Released</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/zi6Af_NVa2s/</link>
		<comments>http://www.componentfactory.com/blog/2010/07/krypton-suite-4-2-released/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 03:25:11 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=653</guid>
		<description><![CDATA[This new release is smaller than usual but does contain a new Toolkit control called the KryptonTrackBar. It acts like the standard windows version allowing the user to drag a position indicator along a track. It also has the ability to draw the track as a triangle and so giving the appearance of a volume control. [...]]]></description>
			<content:encoded><![CDATA[<p>This new release is smaller than usual but does contain a new Toolkit control called the KryptonTrackBar. It acts like the standard windows version allowing the user to drag a position indicator along a track. It also has the ability to draw the track as a triangle and so giving the appearance of a volume control. Always provided are a number of bug fixes and more minor additions.</p>
<p>Please download using the following direct link…</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite420.zip">Download 4.2</a></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/zi6Af_NVa2s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/07/krypton-suite-4-2-released/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/07/krypton-suite-4-2-released/</feedburner:origLink></item>
		<item>
		<title>Volume Control</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/wrih207d3kg/</link>
		<comments>http://www.componentfactory.com/blog/2010/05/volume-control/#comments</comments>
		<pubDate>Wed, 26 May 2010 00:34:34 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=651</guid>
		<description><![CDATA[Thanks to Serge Wautier for the idea of allowing the track bar to be a volumn control. I have added a VolumeControl property that is a simple boolean. When defined it just makes the track a big bigger and draws it as a wedge instead of a rectangle. A trivial change to the control but [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to Serge Wautier for the idea of allowing the track bar to be a volumn control. I have added a <em>VolumeControl</em> property that is a simple boolean. When defined it just makes the track a big bigger and draws it as a wedge instead of a rectangle. A trivial change to the control but maybe it will be useful to a few developers that need such a control.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/VolumnControl.jpg" alt="" /></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/wrih207d3kg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/05/volume-control/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/05/volume-control/</feedburner:origLink></item>
		<item>
		<title>KryptonRibbon and TrackBar</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/eZC05cOr-iM/</link>
		<comments>http://www.componentfactory.com/blog/2010/05/kryptonribbon-and-trackbar/#comments</comments>
		<pubDate>Tue, 25 May 2010 04:28:17 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Ribbon]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=648</guid>
		<description><![CDATA[As the last addition for the new KryptonTrackBar it has now been made available as a group element inside the KryptonRibbon tabs. By default it does not draw the background as you will most likely want the ribbon background to show through. It works in vertical or horizontal orientation and by modifying the TrackBarSize between [...]]]></description>
			<content:encoded><![CDATA[<p>As the last addition for the new <em>KryptonTrackBar</em> it has now been made available as a group element inside the <em>KryptonRibbon</em> tabs. By default it does not draw the background as you will most likely want the ribbon background to show through. It works in vertical or horizontal orientation and by modifying the <em>TrackBarSize</em> between <em>Small</em>, <em>Medium</em> and <em>Large</em> options you can get the appearance to look appropriate for your ribbon group.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/RibbonTrackBar.jpg" alt="" /></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/eZC05cOr-iM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/05/kryptonribbon-and-trackbar/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/05/kryptonribbon-and-trackbar/</feedburner:origLink></item>
		<item>
		<title>KryptonTrackBar Rendering</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/jmCpWiq8RQI/</link>
		<comments>http://www.componentfactory.com/blog/2010/05/kryptontrackbar-rendering/#comments</comments>
		<pubDate>Thu, 20 May 2010 04:26:54 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=646</guid>
		<description><![CDATA[The KryptonTrackBar is now completed.  It has a TrackBarSize enumeration property with three values of Small, Medium and Large. You can see the difference in sizing in the above image that shows them in size order. It has all the same properties as the standard windows control and so you can specify the tick marks to [...]]]></description>
			<content:encoded><![CDATA[<p>The <em>KryptonTrackBar</em> is now completed. </p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/KTB2A.jpg" alt="" /></p>
<p>It has a <em>TrackBarSize</em> enumeration property with three values of <em>Small</em>, <em>Medium</em> and <em>Large</em>. You can see the difference in sizing in the above image that shows them in size order. It has all the same properties as the standard windows control and so you can specify the tick marks to be below, above, both or none as needed. Above you can see the first three of those options displayed.</p>
<p>Altering the <em>Orientation</em> to vertical gives the following&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/KTB2B.jpg" alt="" /></p>
<p>The above is drawn for the <em>Professional System</em> palette under Windows 7. The first image was using the <em>Office 2010 Blue</em> palette.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/jmCpWiq8RQI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/05/kryptontrackbar-rendering/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/05/kryptontrackbar-rendering/</feedburner:origLink></item>
		<item>
		<title>KryptonTrackBar, kinda</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/pwL0uq4ug4o/</link>
		<comments>http://www.componentfactory.com/blog/2010/05/kryptontrackbar-kinda/#comments</comments>
		<pubDate>Tue, 11 May 2010 03:49:37 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=644</guid>
		<description><![CDATA[In the following image there is a standard windows TrackBar and two KryptonTrackBar instances. Can you spot which is which? As you can tell the control is not quite finished as yet. The control is fully working allowing you to use the mouse to move the marker, use the keyboard and even responds to the [...]]]></description>
			<content:encoded><![CDATA[<p>In the following image there is a standard windows TrackBar and two KryptonTrackBar instances. Can you spot which is which?</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/KTB1.jpg" alt="" /></p>
<p>As you can tell the control is not quite finished as yet. The control is fully working allowing you to use the mouse to move the marker, use the keyboard and even responds to the mouse wheel. Now I just need to hook it into the rendering engine and add some code to actually draw appropriately.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/pwL0uq4ug4o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/05/kryptontrackbar-kinda/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/05/kryptontrackbar-kinda/</feedburner:origLink></item>
		<item>
		<title>VS2010 is working!</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/6C4puUcQ1h0/</link>
		<comments>http://www.componentfactory.com/blog/2010/04/vs2010-is-working/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 02:37:50 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=642</guid>
		<description><![CDATA[With great relief I managed to work out the problem and as luck would have it I solved the problem just 10 minutes before Microsoft support called me to investigate the bug report. Thanks to Lex Li for pointing me at the support website instead of the connect site for reporting the issue. So what was [...]]]></description>
			<content:encoded><![CDATA[<p>With great relief I managed to work out the problem and as luck would have it I solved the problem just 10 minutes before Microsoft support called me to investigate the bug report. Thanks to Lex Li for pointing me at the support website instead of the connect site for reporting the issue.</p>
<p>So what was the problem? I already had VS2008 installed and had setup the symbol server settings so I could step into and see the source code for the framework Windows Forms code. This has been very handy in the past for tracking down problems by allowing me to see exactly what was happening in the base classes. Reflector is an excellent tool but there is nothing quite like stepping through the real code.</p>
<p>Well it seems that VS2010 was using the already defined settings and this was the cause of the issue. I removed the symbol server settings and it all working perfectly. Put them back again and it takes essentially forever to try and start-up debugging an application. It never occurred to me until I checked that VS2010 would automatically be using the same settings as defined in VS2008. I just assumed you had to set them up manually for each Visual Studio version.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/6C4puUcQ1h0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/04/vs2010-is-working/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/04/vs2010-is-working/</feedburner:origLink></item>
		<item>
		<title>VS2010 still broken</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/km0W-rcVFdU/</link>
		<comments>http://www.componentfactory.com/blog/2010/04/vs2010-still-broken/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 03:05:59 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=638</guid>
		<description><![CDATA[A quick update on the VS2010 problem. As recommend by commenter&#8217;s I have added a bug report on the Microsoft Connect site. If you want to vote the bug upwards it might have a greater chance of being investigated&#8230; (hint hint)&#8230; Microsoft Connect - Bug Report In the meantime I have restored a system image that [...]]]></description>
			<content:encoded><![CDATA[<p>A quick update on the VS2010 problem. As recommend by commenter&#8217;s I have added a bug report on the Microsoft Connect site. If you want to vote the bug upwards it might have a greater chance of being investigated&#8230; (hint hint)&#8230;</p>
<p><a href="https://connect.microsoft.com/VisualStudio/feedback/details/551271/vshost32-clr2-exe-has-stopped-working">Microsoft Connect - Bug Report</a></p>
<p>In the meantime I have restored a system image that I prudently took immediately before the install and so I&#8217;m back again working away although only with VS2008 at the moment. Even-money says the fix from Microsoft will be to wipe the machine and install everything from scratch. Not something I am looking forward to doing as it takes a couple of days to get everything up and running to the point of being able to build Krypton automatically again.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/km0W-rcVFdU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/04/vs2010-still-broken/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/04/vs2010-still-broken/</feedburner:origLink></item>
		<item>
		<title>VS2010 is broken</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/oGBtyMLcAlc/</link>
		<comments>http://www.componentfactory.com/blog/2010/04/vs2010-is-broken/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 07:14:49 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=634</guid>
		<description><![CDATA[Like a million other .NET developers I rushed to download the Visual Studio 2010 release and installed it on my machine. I hope I&#8217;m the only one that finds it&#8217;s seriously broken when trying to work with a Windows Forms project. All I have to do is the following&#8230; 1, Startup VS2010 2, File -&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Like a million other .NET developers I rushed to download the Visual Studio 2010 release and installed it on my machine. I hope I&#8217;m the only one that finds it&#8217;s seriously broken when trying to work with a Windows Forms project.</p>
<p>All I have to do is the following&#8230;</p>
<p>1, Startup VS2010<br />
2, File -&gt; New -&gt; Project -&gt;<br />
3, Select C# -&gt; Windows Forms Project template<br />
4, Press F5 to compile and run</p>
<p>And then wait forever because after compiling it never runs the application. It makes no difference if I select the .NET Framework 4.0 or 2.0 or any of the others. They fail all the same. It makes no difference if you run as administrator or indeed any other setting I can think of. It&#8217;s just plain broken.</p>
<p>I sometimes also get the following error&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/vs2010error.jpg" alt="VS2010 Error" /></p>
<p>Now I find it hard to believe that something so basic would be broken so I must assume it is the setup of my machine helping to expose the problem. I have Windows 7 Professional 64bit with VS2005, VS2008 and now VS2010 all working side by side. Is anyone else using a similar setup and finding it does or does not work with the above steps?</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/oGBtyMLcAlc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/04/vs2010-is-broken/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/04/vs2010-is-broken/</feedburner:origLink></item>
		<item>
		<title>Krypton Suite 4.1.6 Released</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/LwDVU3YJjs8/</link>
		<comments>http://www.componentfactory.com/blog/2010/04/krypton-suite-4-1-6-released/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 03:53:27 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=632</guid>
		<description><![CDATA[The release is mainly intended for commercial customers. In particular it fixes problems with using the installed source code for purchased version of the Suite. Previously the design time experience when using the compiled source code would fail. This has been resolved by having the source code compilation use a strong key and then automatically [...]]]></description>
			<content:encoded><![CDATA[<p>The release is mainly intended for commercial customers.</p>
<p>In particular it fixes problems with using the installed source code for purchased version of the Suite. Previously the design time experience when using the compiled source code would fail. This has been resolved by having the source code compilation use a strong key and then automatically installing the newly built assemblies into the GAC. So now your projects can always use the GAC assemblies for your projects and the design time experience will be as expected.</p>
<p>Please download using the following direct link…</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite416.zip">Download 4.1.6</a></p>
<p><strong>Major Change</strong><br />
– Installed source code now compiles with strong key<br />
– Installed source code build places assemblies into GAC</p>
<p><strong>Bug fixes</strong><br />
– KryptonRibbon generated code was causing compile errors<br />
– KryptonWorkspace load config was not adding created pages<br />
– KryptonMonthCalendar weeks numbers were incorrect</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/LwDVU3YJjs8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/04/krypton-suite-4-1-6-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/04/krypton-suite-4-1-6-released/</feedburner:origLink></item>
		<item>
		<title>Krypton Suite 4.1.5 Released</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/mn6nu25SRdA/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/krypton-suite-4-1-5-released/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 04:40:44 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=629</guid>
		<description><![CDATA[The latest maintenance release of the Krypton Suite is now available for download. Please download using the following direct link&#8230; Download 4.1.5 Major Change    &#8211; Moved all design time classes to separate assembly New KryptonDataGridView Columns    &#8211; KryptonDataGridViewComboBoxColumn    &#8211; KryptonDataGridViewNumericUpDownColumn    &#8211; KryptonDataGridViewDomainUpDownColumn    &#8211; KryptonDataGridViewMaskedTextBoxColumn    &#8211; KryptonDataGridViewDateTimePickerColumn Major Bug fixes [...]]]></description>
			<content:encoded><![CDATA[<p>The latest maintenance release of the Krypton Suite is now available for download.</p>
<p>Please download using the following direct link&#8230;</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite415.zip">Download 4.1.5</a></p>
<p><strong>Major Change<br />
</strong>   &#8211; Moved all design time classes to separate assembly</p>
<p><strong>New KryptonDataGridView Columns</strong><br />
   &#8211; KryptonDataGridViewComboBoxColumn<br />
   &#8211; KryptonDataGridViewNumericUpDownColumn<br />
   &#8211; KryptonDataGridViewDomainUpDownColumn<br />
   &#8211; KryptonDataGridViewMaskedTextBoxColumn<br />
   &#8211; KryptonDataGridViewDateTimePickerColumn</p>
<p><strong>Major Bug fixes</strong><br />
   &#8211; TAB key works inside Navigator<br />
   &#8211; AutoComplete works for KryptonComboBox<br />
   &#8211; KryptonGallery memory usage improved</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/mn6nu25SRdA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/krypton-suite-4-1-5-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/03/krypton-suite-4-1-5-released/</feedburner:origLink></item>
		<item>
		<title>Krypton Suite Beta</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/FtXnaoQy4xM/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/krypton-suite-beta/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 08:12:29 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=627</guid>
		<description><![CDATA[A beta version of the next release is now available for testing. It is number 4.1.4 and contains bug fixes and some minor new functionality with the addition of some KryptonDataGridView columns. You can download using the following link&#8230; Download Kryton Beta]]></description>
			<content:encoded><![CDATA[<p>A beta version of the next release is now available for testing. It is number 4.1.4 and contains bug fixes and some minor new functionality with the addition of some KryptonDataGridView columns. You can download using the following link&#8230;</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite414.zip">Download Kryton Beta</a></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/FtXnaoQy4xM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/krypton-suite-beta/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/03/krypton-suite-beta/</feedburner:origLink></item>
		<item>
		<title>No Azure for you</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/smOMW8unkLs/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/no-azure-for-you/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 08:47:09 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=618</guid>
		<description><![CDATA[Over recent months I&#8217;ve spent a few hours playing around with SQL Azure, Silverlight and WCF RIA Services. Nothing serious, just seeing if I could store some data in the cloud within a SQL Azure database and then get that data into a Silverlight application running in a browser. I toyed with the idea of creating [...]]]></description>
			<content:encoded><![CDATA[<p>Over recent months I&#8217;ve spent a few hours playing around with SQL Azure, Silverlight and WCF RIA Services. Nothing serious, just seeing if I could store some data in the cloud within a SQL Azure database and then get that data into a Silverlight application running in a browser. I toyed with the idea of creating the new company website as a Silverlight application and so wanted to play around to see how practical it would be. It would be a good chance to learn more about the technologies as well as making the website unique compared to the competition.</p>
<p>I quickly realised it would take more time than I had available. It also have the disadvantage of expecting all site visitors to either already have or be willing to install Silverlight. I don&#8217;t want to alienate some visitors by having a Silverlight install request as the first thing they see.</p>
<p>Turns out there is another good reason not to bother. Now that Windows Azure and SQL Azure are live it seems Australia has not been invited to the party. If your company is based in the US, UK, Japan, Germany or a good many others then you could sign up. Australia? Thanks but no thanks. You have to wait until some unspecified time in the future before you can use our service.</p>
<p>Good job I dropped the Silverlight idea.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/smOMW8unkLs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/no-azure-for-you/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/03/no-azure-for-you/</feedburner:origLink></item>
		<item>
		<title>Do you own a business?</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/M9vlYjrTnHk/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/do-you-own-a-business/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 05:06:25 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=624</guid>
		<description><![CDATA[I&#8217;ve just started a graduate course in business and part of my first assignment is to interview an existing business owner. Does anyone out there own a small business and would they mind if I email them a few questions? It is only a fairly high level set of questions and should take no more than 5 minutes [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just started a graduate course in business and part of my first assignment is to interview an existing business owner. Does anyone out there own a small business and would they mind if I email them a few questions? It is only a fairly high level set of questions and should take no more than 5 minutes to answer. Thanks.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/M9vlYjrTnHk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/do-you-own-a-business/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/03/do-you-own-a-business/</feedburner:origLink></item>
		<item>
		<title>Spolsky rolls the dice</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/-2xIPMoS1sY/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/spolsky-rolls-the-dice/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 20:00:02 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=620</guid>
		<description><![CDATA[Spectator Sport It&#8217;s not often that you get to be a spectator during the early stages of a start-up. Usually by the time a company appears on your radar it&#8217;s already past the start-up phase and into growth. I bet that companies like Twitter and Facebook already had millions of users before you first came [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Spectator Sport</strong></p>
<p>It&#8217;s not often that you get to be a spectator during the early stages of a start-up. Usually by the time a company appears on your radar it&#8217;s already past the start-up phase and into growth. I bet that companies like Twitter and Facebook already had millions of users before you first came across them. But <a href="http://www.joelonsoftware.com">Joel Spolsky</a> has given us the chance to watch a start-up at the earliest stages.</p>
<p><strong>The Players</strong></p>
<p><a href="http://stackoverflow.com">StackOverflow</a> has been running for a little while now and has established itself as a part of the programmers online community. If you&#8217;ve never heard of the site then definitely check it out. I have used it myself and received some good answers that helped in my work.</p>
<p>From comments made by Joel and co-founder <a href="http://www.codinghorror.com">Jeff Atwood</a> it would seem that although the site is a success, something like 6 million unique visitors per month, it does not make a ton of money. In fact comments from Jeff on his blog and podcast would indicate it barely makes enough to pay himself and couple of other programmers a liveable wage. So they have expanded on the idea by releasing a hosted service so you can create your own question and answer site called <a href="http://www.stackexchange.com/">StackExchange</a>. This is a paid for service so they make some money whether your own site is popular or not.</p>
<p>At this point they have a couple of options. Either bootstrapping  using internal resources or rolling the dice by taking outside funding. Joel has taken the bootstrapping route with <a href="http://www.fogcreek.com/">Fog Creek Software</a>. Founded in 2000 they have grown steadily to 34 employees and now have a range of different products including the well known FogBugz.</p>
<p>For StackOverflow it seems that Joel and Jeff are instead looking to <a href="http://www.joelonsoftware.com/items/2010/02/14.html">raise venture capital money</a>. Feedback on this has been generally negative with this post by <a href="http://37signals.com/svn/posts/2159-all-the-wrong-reasons-for-stack-overflows-vc-chase">David Heinemeier Hansson</a> being a particularly scathing response.</p>
<p>Once Joel and Jeff sign on the dotted line for funding they are committed to either becoming large and profitable or instead dying. A VC has absolutely no interest in an investment that pikes along making a small profit. In fact they have a name for these investments, the walking dead. If you managed to become a 10 person company with profit of $300k per year the VC would consider that a failure and insist you take big risks to become much much bigger. They would insist on rolling the dice again.</p>
<p><strong>The Patsy</strong></p>
<p>For Joel this is a great approach. He already has a company slowly making him rich and so it makes no sense to bootstrap another in a way that makes no impact on his personal wealth. He might as well roll the dice and see if he can knock it out of the park. Jeff is the patsy in this scenario. For Jeff this is a terrible idea. There is a 90% chance the attempt to go big will fail and then he ends up losing everything he has built up so far. He is back to square one and looking for a permanent job again. Maybe he could apply to Fog Creek Software?</p>
<p><strong>Last Note</strong></p>
<p>Joel knows this is a big risk and that is why he wants to risk others money and not his own. Fog Creek Software has 34 employees and if you estimate it makes a profit of $30k per employee [1] then they are making $1m profit per year. Split that between two founders and staff bonuses and you still get, lets say, $250k per year for Joel. There is no doubt that Joel could spend $500k of his personal money if he really believed it was a winner. If he really believed in the success of his ideas then he would spend that to retain ownership of the equity.</p>
<p>[1] The $30k profit per employee is probably a big underestimate if you look at proxies like the $500k they spent outfitting the new offices they have.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/-2xIPMoS1sY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/spolsky-rolls-the-dice/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/03/spolsky-rolls-the-dice/</feedburner:origLink></item>
		<item>
		<title>Mercurial for Windows</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/nWHelhqy2AU/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/mercurial-for-windows/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 05:24:48 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=616</guid>
		<description><![CDATA[Subversion Sucks Until now I have been using Subversion for my source code management. To avoid using the command line tools I also used VisualSVN and TortoiseSVN which provide an easier user interface for usage with Visual Studio and the Windows Explorer respectively. After using this setup for some time I have decided that it sucks. I [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Subversion Sucks</strong></p>
<p>Until now I have been using <a href="http://subversion.apache.org/">Subversion</a> for my source code management. To avoid using the command line tools I also used <a href="http://www.visualsvn.com/">VisualSVN</a> and <a href="http://tortoisesvn.net/">TortoiseSVN</a> which provide an easier user interface for usage with Visual Studio and the Windows Explorer respectively.</p>
<p>After using this setup for some time I have decided that it sucks. I often wait a couple of weeks before checking in my latest batch of changes (yes, I know I should probably do this every day). You can bet that checking in will give some weird problem with an error message that is almost useful but not quite. Then you spend what feels like forever trying to work out the reason. And every time it turns out to be something different.</p>
<p>This is before mentioning the vast annoyance that is the overlay icons. The idea of the TortoiseSVN shell extension is that you get nice add/remove/unchanged style icon overlays when looking at your files. So you can easily see what has changed. Do they work? Not really. Most of the time they are correct but sometimes they are just plain wrong. I don&#8217;t like looking at the icons and knowing they might be lying to me.</p>
<p>So I&#8217;ve dumped Subversion. I know that some of you are going to point out you have used it with success for several years and the problem is the operator. You&#8217;re quite right but I am still dumping it and trying out something different.</p>
<p><strong>Mercurial for Windows</strong></p>
<p>The latest fad in source code control is the use of distributed systems such as <a href="http://git-scm.com/">Git</a>, <a href="http://mercurial.selenic.com/">Mercurial</a> and <a href="http://bazaar.canonical.com/en/">Bazaar</a>. So I&#8217;ve jumped on the bandwagon and opted to give Mercurial a chance. The download at <a href="http://tortoisehg.bitbucket.org/">TortoiseHG</a> comes with Mercurial and the TortoiseHG shell extensions in a single installer. I only started using it a few days ago but so far it has been very simple and easy to use. Even the icon overlays have been correct so far.</p>
<p>To get started yourself read this <a href="http://hginit.com/01.html">online introduction</a> and download from <a href="http://tortoisehg.bitbucket.org/">here</a>.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/nWHelhqy2AU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/mercurial-for-windows/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/03/mercurial-for-windows/</feedburner:origLink></item>
		<item>
		<title>Facebook</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/HrCvvTJyGWs/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/facebook/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 11:53:25 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=614</guid>
		<description><![CDATA[I have finally joined up with Facebook and am probably the last developer in the world to do so. I never really thought there was much point as I have no interest in sharing pictures of skate boarding ferrets (although having said that it does sound quite impressive if you have indeed managed to train [...]]]></description>
			<content:encoded><![CDATA[<p>I have finally joined up with <em>Facebook </em>and am probably the last developer in the world to do so. I never really thought there was much point as I have no interest in sharing pictures of skate boarding ferrets (although having said that it does sound quite impressive if you have indeed managed to train your ferret to skate board).</p>
<p>I have added by profile link on the sidebar of the blog so anyone that is interested in software development and business development should feel to &#8216;friend&#8217; up.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/HrCvvTJyGWs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/facebook/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/03/facebook/</feedburner:origLink></item>
		<item>
		<title>Krypton.Design</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/Yz4iGlkOtHQ/</link>
		<comments>http://www.componentfactory.com/blog/2010/02/componentfactory-krypton-design/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 11:11:58 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=611</guid>
		<description><![CDATA[One of the new features of .NET Framework 4.0 is the introduction of Client Profiles. The Client Profile is a cut down version of the full .NET Framework that only includes the essential assemblies needed for client based applications. The idea is to reduce the download/install size for this common deployment scenario. Design time classes are not [...]]]></description>
			<content:encoded><![CDATA[<p>One of the new features of <em>.NET Framework 4.0</em> is the introduction of <em>Client Profiles</em>. The <em>Client Profile</em> is a cut down version of the full <em>.NET Framework</em> that only includes the essential assemblies needed for client based applications. The idea is to reduce the download/install size for this common deployment scenario. Design time classes are not part of the client profile because they are implicitly only needed for designing and not for running your applications.</p>
<p>At the moment <em>Krypton</em> cannot be used in this situation because the <em>Krypton</em> design time classes are placed inside the same assembly as the relevant controls. So the <em>Krypton Toolkit</em> design time classes are inside the <em>Toolkit</em> assembly, <em>Krypton Ribbon</em> design time classes inside the <em>Ribbon</em> assembly and so forth. But the design time assembly is not included in the client profile and so the <em>Krypton</em> assemblies will not be loadable.</p>
<p>To enable this scenario I have now created a new <em>ComponentFactory.Krypton.Design</em> assembly and moved all the design time classes into it. This means you can write a client profile application that references the <em>Krypton Toolkit/Ribbon/Navigator/Workspace/Docking</em> assemblies and it will work just fine because the <em>Krypton</em> assemblies no longer reference the <em>System.Design</em> namespace.</p>
<p>Note that client profiles are a feature exposed in <em>Visual Studio 2010</em> and so you will only be aware of them if you have downloaded and played with that version.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/Yz4iGlkOtHQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/02/componentfactory-krypton-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/02/componentfactory-krypton-design/</feedburner:origLink></item>
		<item>
		<title>Windows Not Genuine</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/MeCb8F6IRTU/</link>
		<comments>http://www.componentfactory.com/blog/2010/02/windows-not-genuine/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 10:56:33 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=609</guid>
		<description><![CDATA[In most regards I would say that Australia is a first world country. But when it comes to power cuts you might as well be in the middle of Somalia. I must get a blip in power supply every couple of weeks. Almost all power boards over here come with a built-in surge protector which [...]]]></description>
			<content:encoded><![CDATA[<p>In most regards I would say that Australia is a first world country. But when it comes to power cuts you might as well be in the middle of Somalia. I must get a blip in power supply every couple of weeks. Almost all power boards over here come with a built-in surge protector which tells you how reliable the power supply is considered. The last cut was the most annoying as it lasted for several hours. Even worse it was evening and so the house was completely dark. I had to read a book by candlelight!</p>
<p>After my throwback to the Victorian era I rebooted to discover my machine was now considered to be pirated. It would let you login but then it shows a blank desktop with a message saying that your copy of windows is not genuine. I can assure you that Krypton is developed on a fully legal copy of Windows. It only took 20 minutes to get the machine working again by moving to a previous restore point and no data was lost. So I recommend all developers in Australia have a nightly backup of all your important data and ensure you image the machine on a regular basis. Luckily I do both.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/MeCb8F6IRTU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/02/windows-not-genuine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/02/windows-not-genuine/</feedburner:origLink></item>
		<item>
		<title>Website Tweaked</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/SCu1EOshcVQ/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/website-tweaked/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 10:43:58 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=607</guid>
		<description><![CDATA[I think it is fair to say the initial response to the new website design was less than enthusiastic. To some extent this is because many people do not like change and the new site is definitely a significant change over the old site. Also I would agree with many of the comments about the font [...]]]></description>
			<content:encoded><![CDATA[<p>I think it is fair to say the initial response to the new website design was less than enthusiastic. To some extent this is because many people do not like change and the new site is definitely a significant change over the old site. Also I would agree with many of the comments about the font family and size not being very good.</p>
<p>So I have just finished updating the site so that most people viewing using Windows will see the &#8220;Segoe UI&#8221; font. This might seem an odd choice but remember I am selling components to Windows developers and so the vast majority are going to be viewing the site from a Windows machine with that font installed. It falls back to using Tahoma if you do not have that font installed.</p>
<p>Let me know what you think of the latest update. If you could split your comments between the main site, the blog area and the forums area that would be good. Maybe you like some areas but not the others?</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/SCu1EOshcVQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/website-tweaked/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/website-tweaked/</feedburner:origLink></item>
		<item>
		<title>New Website Live!</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/SRCshhoMKw8/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/new-website-live/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 03:56:34 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=605</guid>
		<description><![CDATA[I mentioned a few months ago that a new website design was in the process. Well finally the process is complete and the new site us up and live! The actual content of the site is essentially unchanged at the moment. I intend to create new webcasts and new sets of images in the new [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned a few months ago that a new website design was in the process. Well finally the process is complete and the new site us up and live!</p>
<p>The actual content of the site is essentially unchanged at the moment. I intend to create new webcasts and new sets of images in the new few weeks as time allows. Let me know if you spot any teething problems such as broken links.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/SRCshhoMKw8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/new-website-live/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/new-website-live/</feedburner:origLink></item>
		<item>
		<title>DataGridView ButtonSpecs</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/KMyQ6_SCFQA/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/datagridview-buttonspecs/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 04:55:12 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=602</guid>
		<description><![CDATA[It seems I cannot get away without having button specs on the new columns. So I&#8217;ve added a ButtonSpecs collection to the column class of each of the following types&#8230; DateTimePicker MaskedTextBox NumericUpDown DomainUpDown ComboBox Here you can see a couple of example images&#8230; To make life a little easier for the developer I have [...]]]></description>
			<content:encoded><![CDATA[<p>It seems I cannot get away without having button specs on the new columns. So I&#8217;ve added a <em>ButtonSpecs</em> collection to the column class of each of the following types&#8230;</p>
<ul>
<li>DateTimePicker</li>
<li>MaskedTextBox</li>
<li>NumericUpDown</li>
<li>DomainUpDown</li>
<li>ComboBox</li>
</ul>
<p>Here you can see a couple of example images&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGV5A.jpg" alt="" /></p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGV5B.jpg" alt="" /></p>
<p>To make life a little easier for the developer I have added a <em>ButtonSpecClick</em> event onto the columns that is fired whenever any button spec is clicked for any cell in that column. This event has parameters that made it easy to get hold of the column, cell and button spec instances involved in that click. Stops you needing to walk around the data structures finding your way from the button spec to the cell and then the column, which although not hard is certainly a pain to work out each time you need to do it.</p>
<p>Note that there are no button specs on the already defined Krypton columns  TextBox/CheckBox/Button/Link. This is because they work in a different way that makes it impractical to add them. All the new columns have an instance of an actual control that is used when editing the cell. So when you click on a numeric column it uses a <em>KryptonNumericUpDown</em> instance perform the drawing and editing. As the <em>KryptonNumericUpDown</em> already has support for button specs this makes it possible to add that capability by moving the button specs from the column collection into the control for the duration of editing. But the TextBox/CheckBox/Button/Link columns all perform drawing by using direct calls to the renderer and adding extra code to simulate the presence of buttons is not a pleasant thought.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/KMyQ6_SCFQA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/datagridview-buttonspecs/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/datagridview-buttonspecs/</feedburner:origLink></item>
		<item>
		<title>DataGridView Requests?</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/vPRG1Xeavf8/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/datagridview-requests/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 01:08:21 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=600</guid>
		<description><![CDATA[I thought the MaskedTextBox column would be the last addition for the DataGridView but it seems there is more interest in columns than I anticipated. I was trying to think of other useful ones. Would a column for editing a colour be useful? Does anyone actually need to do this at the moment? What data [...]]]></description>
			<content:encoded><![CDATA[<p>I thought the <em>MaskedTextBox</em> column would be the last addition for the <em>DataGridView</em> but it seems there is more interest in columns than I anticipated. I was trying to think of other useful ones. Would a column for editing a colour be useful? Does anyone actually need to do this at the moment? What data type is the column itself?</p>
<p>Apart from a drop button and colour column what others are people in need of? I cannot promise to add what people request but if it sounds generally useful and not overly time consuming to add then I will certainly consider it.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/vPRG1Xeavf8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/datagridview-requests/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/datagridview-requests/</feedburner:origLink></item>
		<item>
		<title>DataGridView MaskedTextBox</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/q4CDj_6XOZg/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/datagridview-maskedtextbox/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 01:37:14 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=598</guid>
		<description><![CDATA[Our final addition in a series of new column types allows a KryptonMaskedTextBox to be used for displaying and editing cells values. Here you can see two columns using the new column&#8230;  I setup the first column with a mask of &#8220;(99) 9999-9999&#8243; and the second is defined to use the system password character in order [...]]]></description>
			<content:encoded><![CDATA[<p>Our final addition in a series of new column types allows a <em>KryptonMaskedTextBox</em> to be used for displaying and editing cells values. Here you can see two columns using the new column&#8230; </p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGVMTB.jpg" alt="" /></p>
<p>I setup the first column with a mask of &#8220;<em>(99) 9999-9999&#8243;</em> and the second is defined to use the system password character in order to hide the underlying text value. Using the masked text box is a great way of achieving a formatted appearance to underlying string values and also ensuring the user can only enter valid values.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/q4CDj_6XOZg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/datagridview-maskedtextbox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/datagridview-maskedtextbox/</feedburner:origLink></item>
		<item>
		<title>DataGridView DateTimePicker</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/O3f_Vhx3hcQ/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/datagridview-datetimepicker/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 05:18:12 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=594</guid>
		<description><![CDATA[Editing dates and times in the KryptonDataGridView is a requirement for almost all business applications. Well now its easy with the addition of the inconveniently long named column type of KryptonDataGridViewDateTimePickerColumn. You can use the column type to edit DateTime typed columns as shown here&#8230; All three columns are defined using our new column type but by altering [...]]]></description>
			<content:encoded><![CDATA[<p>Editing dates and times in the <em>KryptonDataGridView</em> is a requirement for almost all business applications. Well now its easy with the addition of the inconveniently long named column type of <em>KryptonDataGridViewDateTimePickerColumn</em>. You can use the column type to edit <em>DateTime</em> typed columns as shown here&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGV3A.jpg" alt="" /></p>
<p>All three columns are defined using our new column type but by altering the <em>Format, CustomFormat</em> and other column properties we can choose to only show and allowing editing of the <em>Date</em> part, <em>Time</em> part or both. It can handle null able columns as well, just remember to set the <em>ShowCheckBox</em> to <em>True</em> for a null able column so that the user can make an entry null able again after setting a <em>DateTime</em> value.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/O3f_Vhx3hcQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/datagridview-datetimepicker/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/datagridview-datetimepicker/</feedburner:origLink></item>
		<item>
		<title>DataGridView Drawing</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/ycErPHYbY6Y/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/datagridview-drawing/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 02:33:19 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=592</guid>
		<description><![CDATA[In response to feedback on the last three posts I have now updated the new NumericUpDown, DomainUpDown and ComboBox custom columns so that they only draw the buttons when they are being edited. Here you can see all three new columns types in normal as well as editing states&#8230; There is a property on the [...]]]></description>
			<content:encoded><![CDATA[<p>In response to feedback on the last three posts I have now updated the new <em>NumericUpDown</em>, <em>DomainUpDown</em> and <em>ComboBox</em> custom columns so that they only draw the buttons when they are being edited. Here you can see all three new columns types in normal as well as editing states&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGV2A.jpg" alt="" /></p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGV2B.jpg" alt="" /></p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGV2C.jpg" alt="" /></p>
<p>There is a property on the column so that you can draw them with the buttons all the time but the default is as above. Also note that you get full auto suggest and auto append functionality in the <em>ComboBox</em> column. You can see that in action above as well.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/ycErPHYbY6Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/datagridview-drawing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/datagridview-drawing/</feedburner:origLink></item>
		<item>
		<title>DataGridView ComboBox</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/A1rA8u32HdM/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/datagridview-combobox/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 01:53:15 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=588</guid>
		<description><![CDATA[KryptonDataGridViewComboBoxColumn You can now use the KryptonComboBox in a text typed column. This is great if you have a small set of possible values and allows the full list to be available from the drop down. Also useful if you have common values that you want to be accessed from the drop down whilst the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>KryptonDataGridViewComboBoxColumn</strong></p>
<p>You can now use the <em>KryptonComboBox</em> in a text typed column. This is great if you have a small set of possible values and allows the full list to be available from the drop down. Also useful if you have common values that you want to be accessed from the drop down whilst the editing portion remains editable. Here you are see it in action&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGVCBC.jpg" alt="" /></p>
<p>Youc an specify the set of combo box strings in the columns <em>Items</em> collection.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/A1rA8u32HdM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/datagridview-combobox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/datagridview-combobox/</feedburner:origLink></item>
		<item>
		<title>DataGridView DomainUpDown</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/fMcmtuj70wI/</link>
		<comments>http://www.componentfactory.com/blog/2010/01/datagridview-domainupdown/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 03:25:10 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=586</guid>
		<description><![CDATA[KryptonDataGridViewDomainUpDownColumn A control that is less used than it should be is the DomainUpDown. It&#8217;s really handy when you want the user to able to enter any text they like but you also want them to have a simple list of common options they can scroll through. You can now use the KryptonDomainUpDown in a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>KryptonDataGridViewDomainUpDownColumn</strong></p>
<p>A control that is less used than it should be is the <em>DomainUpDown</em>. It&#8217;s really handy when you want the user to able to enter any text they like but you also want them to have a simple list of common options they can scroll through. You can now use the <em>KryptonDomainUpDown</em> in a text typed column. Here you are see it in action&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGVDUPC.jpg" alt="" /></p>
<p>Youc an specify the set of predefined strings in the columns <em>Items</em> collection.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/fMcmtuj70wI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/01/datagridview-domainupdown/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2010/01/datagridview-domainupdown/</feedburner:origLink></item>
		<item>
		<title>DataGridView NumericUpDown</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/qX6L7AE9HKU/</link>
		<comments>http://www.componentfactory.com/blog/2009/12/datagridview-numericupdown/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 04:17:30 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=581</guid>
		<description><![CDATA[KryptonDataGridViewNumericUpDownColumn This rather long class name can be used to add a KryptonNumericUpDown control for the editing of Decimal values in a KryptonDataGridView control. You can see the new column type in operation here&#8230; Youc an specify the Minimum, Maximum, ThousandsSeparator, DecimalPlaces, Hexadecimal and Increment values for the column.]]></description>
			<content:encoded><![CDATA[<p><strong>KryptonDataGridViewNumericUpDownColumn</strong></p>
<p>This rather long class name can be used to add a <em>KryptonNumericUpDown</em> control for the editing of <em>Decimal</em> values in a <em>KryptonDataGridView</em> control. You can see the new column type in operation here&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DGVNUPC.jpg" alt="" /></p>
<p>Youc an specify the <em>Minimum</em>, <em>Maximum</em>, <em>ThousandsSeparator, DecimalPlaces, Hexadecimal</em> and <em>Increment</em> values for the column.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/qX6L7AE9HKU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/12/datagridview-numericupdown/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2009/12/datagridview-numericupdown/</feedburner:origLink></item>
		<item>
		<title>Navigator Page Reordering</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/XAcYeClP4qI/</link>
		<comments>http://www.componentfactory.com/blog/2009/12/navigator-page-reordering/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 01:23:17 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=579</guid>
		<description><![CDATA[The KryptonPage has two new flags&#8230; AllowPageDrag AllowPageReorder These are used in conjunction with the Navigator flags of the same name to decide if the page can be dragged out of the navigator control or reordered. This provides per-page control over the actions rather than having the same restriction applied to all pages. A new [...]]]></description>
			<content:encoded><![CDATA[<p>The <em>KryptonPage</em> has two new flags&#8230;</p>
<ul>
<li>AllowPageDrag</li>
<li>AllowPageReorder</li>
</ul>
<p>These are used in conjunction with the <em>Navigator</em> flags of the same name to decide if the page can be dragged out of the navigator control or reordered. This provides per-page control over the actions rather than having the same restriction applied to all pages.</p>
<p>A new <em>Navigator</em> event called <em>BeforePageReorder</em> is also added that allows you to cancel the movement of a page during reordering actions. This allows the following common scenario to be implemented.</p>
<p>If you have a page that you want to remain always at the start of the set of pages then you can set the <em>AllowPageReorder</em> flag to <em>False</em> for that page. This prevents the user from being able to reorder that individual page. Then you can intercept the <em>BeforePageReorder</em> event and <em>Cancel</em> the event any time a page wants to be moved before our first page. Now you have a setup where all but the first page can be reordered but none of the pages can be moved before the first one. You could also implement more complex requirements such as always keeping a particular page after another in the list of pages. Although anything that complex is likely to confuse the user.</p>
<p>Note that these new flags and event only relate to user dragging actions. You can still add a page anywhere you like programmatically.</p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/XAcYeClP4qI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/12/navigator-page-reordering/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2009/12/navigator-page-reordering/</feedburner:origLink></item>
		<item>
		<title>Krypton 4.1.1 Released</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/9V-s8VgGwl8/</link>
		<comments>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-released/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 02:56:24 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=577</guid>
		<description><![CDATA[This is a maintenance release that contains bug fixes and just a single change in functionality. I recommend that you read the change list files, that are linked below, in order to see the full list of bugs that have been fixed. Also included is a fix to the installer that prevents the Krypton controls from appearing multiple times [...]]]></description>
			<content:encoded><![CDATA[<p>This is a maintenance release that contains bug fixes and just a single change in functionality. I recommend that you read the change list files, that are linked below, in order to see the full list of bugs that have been fixed. Also included is a fix to the installer that prevents the Krypton controls from appearing multiple times inside the Toolbox.</p>
<p>The single functional change is to the Office 2010 palettes. As the result of a developer <a href="http://www.componentfactory.com/forums/viewtopic.php?f=3&amp;t=2749">poll</a> indicated that people wanted the default size of the Office 2010 palettes changed to match that of the Office 2007 palettes. This change has been made in this release. You can however revert those palettes to the smaller size, or indeed any size you like, using the following example code&#8230;</p>
<p>   KryptonManager.PaletteOffice2010Blue.BaseFontSize = 8.5f;<br />
   KryptonManager.PaletteOffice2010Silver.BaseFontSize = 8.5f;<br />
   KryptonManager.PaletteOffice2010Black.BaseFontSize = 8.5f;</p>
<p>This new <em>BaseFontSize</em> property is available on the built-in palettes except the <em>Professional</em> variations. There is also a <em>BaseFontName</em> that allows the font to be changed away from the default <em>Segoe UI</em> setting.<br />
 </p>
<p><strong>Download Link<br />
</strong><a href="http://www.componentfactory.com/downloads/KryptonSuite411.zip">Download Krypton 4.1.1</a></p>
<p><strong>Change Lists<br />
</strong><a href="http://www.componentfactory.com/downloads/changeLists/KryptonToolkitChangeList.doc">Toolkit Change List</a><br />
<a href="http://www.componentfactory.com/downloads/changeLists/KryptonRibbonChangeList.doc">Ribbon Change List</a><br />
<a href="http://www.componentfactory.com/downloads/changeLists/KryptonNavigatorChangeList.doc">Navigator Change List</a><br />
<a href="http://www.componentfactory.com/downloads/changeLists/KryptonWorkspaceChangeList.doc">Workspace Change List</a><br />
<a href="http://www.componentfactory.com/downloads/changeLists/KryptonDockingChangeList.doc">Docking Change List</a></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/9V-s8VgGwl8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-released/</feedburner:origLink></item>
		<item>
		<title>Krypton 4.1.1 RC</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/mzT-Rt2hKLs/</link>
		<comments>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-rc/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 11:41:41 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=575</guid>
		<description><![CDATA[You can download the Krypton 4.1.1 Release Candidate using the link at the bottom of this post. It contains bug fixes across all the major controls, an installer fix to prevent multiple control instances appearing inside the Toolbox, another installer fix so that docking components appear inside the Toolbox and a single extra piece of functionality. The extra functionality [...]]]></description>
			<content:encoded><![CDATA[<p>You can download the Krypton 4.1.1 Release Candidate using the link at the bottom of this post. It contains bug fixes across all the major controls, an installer fix to prevent multiple control instances appearing inside the Toolbox, another installer fix so that docking components appear inside the Toolbox and a single extra piece of functionality.</p>
<p>The extra functionality is a property that sets the base font size&#8230;</p>
<p>kryptonManager.PaletteOffice2010Blue.BaseFontSize = 9.5f;</p>
<p>This property is only provided on the built in palettes and can be accessed via the KryptonManager as seen in the above code example. This allows those that would like a bigger font for the Office 2010 palettes to achieve it using the above example code. Please report any issues inside the post comments or via a direct email to myself.</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite411.zip">Download 4.1.1</a></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/mzT-Rt2hKLs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-rc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-rc/</feedburner:origLink></item>
		<item>
		<title>Office 2010 Poll</title>
		<link>http://feedproxy.google.com/~r/PhilWrightComponentFactory/~3/b6PKwZpnSGE/</link>
		<comments>http://www.componentfactory.com/blog/2009/12/office-2010-poll/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 00:42:42 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=573</guid>
		<description><![CDATA[I&#8217;ve had feedback from several developers that the smaller font size of the Office 2010 palettes is a real pain in the backside. Because all the other palettes have the same size font it makes it possible to create a single layout for a form and when switching palettes it will still look good. But [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had feedback from several developers that the smaller font size of the Office 2010 palettes is a real pain in the backside. Because all the other palettes have the same size font it makes it possible to create a single layout for a form and when switching palettes it will still look good. But the smaller font of Offie 2010 palettes causes this to start failing.</p>
<p>This sounds like a valid issue. So I have started a poll on the forums in order to gather feedback. If a clear majority want the font made bigger to match the other palettes then the 4.1.1 release will be updated to make that happen. Note however that the ribbon fonts will not change as they look fine as they are. The ribbon is self contained and so there is no need to update the fonts for the ribbon itself.</p>
<p>If you want to vote then visit the forum link here&#8230;</p>
<p><a href="http://www.componentfactory.com/forums/viewtopic.php?f=3&amp;t=2749">Poll on Forums</a></p>
<img src="http://feeds.feedburner.com/~r/PhilWrightComponentFactory/~4/b6PKwZpnSGE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/12/office-2010-poll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.componentfactory.com/blog/2009/12/office-2010-poll/</feedburner:origLink></item>
	</channel>
</rss>

