Preserve full site structure: articles, blog posts, downloads, BLV Express, sitemap, legacy CSS/JS
This commit is contained in:
328
public/blog/category/announcements/feed/index.html
Normal file
328
public/blog/category/announcements/feed/index.html
Normal file
@@ -0,0 +1,328 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
|
||||
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/"
|
||||
>
|
||||
|
||||
<channel>
|
||||
<title>Announcements – Owl's Blog on .NET development</title>
|
||||
<atom:link href="http://www.componentowl.com/blog/category/announcements/feed/" rel="self" type="application/rss+xml" />
|
||||
<link>http://www.componentowl.com/blog</link>
|
||||
<description>Component Owl codes Better ListView control all night so you don't have to.</description>
|
||||
<lastBuildDate>Tue, 04 Sep 2018 13:10:05 +0000</lastBuildDate>
|
||||
<language>en-US</language>
|
||||
<sy:updatePeriod>hourly</sy:updatePeriod>
|
||||
<sy:updateFrequency>1</sy:updateFrequency>
|
||||
<generator>https://wordpress.org/?v=4.9.8</generator>
|
||||
<item>
|
||||
<title>Sub-item Check Boxes in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/#respond</comments>
|
||||
<pubDate>Sun, 06 Jul 2014 21:48:41 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[box]]></category>
|
||||
<category><![CDATA[boxes]]></category>
|
||||
<category><![CDATA[buttons]]></category>
|
||||
<category><![CDATA[cell]]></category>
|
||||
<category><![CDATA[cells]]></category>
|
||||
<category><![CDATA[check]]></category>
|
||||
<category><![CDATA[checkbox]]></category>
|
||||
<category><![CDATA[checkboxes]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[radio]]></category>
|
||||
<category><![CDATA[radios]]></category>
|
||||
<category><![CDATA[sub-item]]></category>
|
||||
<category><![CDATA[subitem]]></category>
|
||||
<category><![CDATA[subitems]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=901</guid>
|
||||
<description><![CDATA[How to display fully interactive check boxes and radio buttons in Better ListView sub-items.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_902" style="width: 395px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/07/blv-sub-item-checkboxes.png"><img class="size-full wp-image-902" title="blv-sub-item-checkboxes" src="../../../wp-content/uploads/2014/07/blv-sub-item-checkboxes.png" alt="Better ListView Sub-item Check Boxes" width="385" height="82" /></a><p class="wp-caption-text">Better ListView Sub-item Check Boxes</p></div>
|
||||
<p><a href="../../../../betterlistview.exe">Better ListView 3.10.0</a> allows displaying fully interactive check boxes and even radio buttons in sub-item cells.</p>
|
||||
<p>This feature can be activated simply by setting <strong>CheckBoxAppearance</strong> property of a given sub-item to other value than <strong>Hide</strong>. Such sub-item will not display check box or radio instead of image and text.</p>
|
||||
<p>Please note the first sub-item’s properties do not apply as they are overriden by item’s properties. These two are separate for the case of column reordering (keeping consistency of sub-item states).</p>
|
||||
<p>Another new feature in Better ListView is that check boxes or radios can be displayed disabled. This can be achieved by setting <strong>CheckEnabled</strong> property to <strong>false</strong> on the respective item or sub-item.</p>
|
||||
<p>Sub-item check boxes can be operated by both mouse and keyboard. Checking sub-item with keyboard can be done by navigating focus rectangle by arrow keys to the given sub-item and pressing spacebar.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Better Thumbnail Browser Component Released</title>
|
||||
<link>http://www.componentowl.com/blog/better-thumbnail-browser-component-released/</link>
|
||||
<comments>http://www.componentowl.com/blog/better-thumbnail-browser-component-released/#comments</comments>
|
||||
<pubDate>Sat, 01 Dec 2012 18:26:16 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[background]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[browser]]></category>
|
||||
<category><![CDATA[component]]></category>
|
||||
<category><![CDATA[control]]></category>
|
||||
<category><![CDATA[folder]]></category>
|
||||
<category><![CDATA[image]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[load]]></category>
|
||||
<category><![CDATA[loading]]></category>
|
||||
<category><![CDATA[thumbnail]]></category>
|
||||
<category><![CDATA[thumbnailbrowser]]></category>
|
||||
<category><![CDATA[thumbnails]]></category>
|
||||
<category><![CDATA[winforms]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=823</guid>
|
||||
<description><![CDATA[  We have released a whole new WinForms component called Better Thumbnail Browser. This control is useful for anyone developing photo management software or any kind of image database: The control is capable of loading image thumbnails on background and does all the dirty job of threading and synchronization for you. My motivation to make […]]]></description>
|
||||
<content:encoded><![CDATA[<p> </p>
|
||||
<p>We have released a whole new WinForms component called <a href="http://www.componentowl.com/better-thumbnail-browser">Better Thumbnail Browser</a>. This control is useful for anyone developing photo management software or any kind of image database:</p>
|
||||
<div style="width: 404px" class="wp-caption aligncenter"><a href="http://assets.componentowl.com/screenshots/43/overview_original_1354296079.png?1354270879"><img class=" " title="Better Thumbnail Browser" src="http://assets.componentowl.com/screenshots/43/overview_original_1354296079.png?1354270879" alt="Better Thumbnail Browser Overview" width="394" height="283" /></a><p class="wp-caption-text">Better Thumbnail Browser Overview</p></div>
|
||||
<p>The control is capable of loading image thumbnails on background and does all the dirty job of threading and synchronization for you.</p>
|
||||
<p>My motivation to make such component as lead developer at ComponentOwl.com was to have something that can smoothly integrate in my photo management software.</p>
|
||||
<p>Since we already have <a href="http://www.componentowl.com/better-listview">Better ListView</a> component, which is quite mature (three major releases over two years of development), I decided to build upon it and finally make control for image thumbnails that is both extensible and powerful and have native look and feel.</p>
|
||||
<p>Better Thumbnail Browser inherits most of its functionality from Better ListView (multi column sorting, custom paddings and spacings, multi-line text and groups to name a few). It adds image loading logic on top of it, which can handle various scenarios:</p>
|
||||
<ul>
|
||||
<li>Load images from a folder, database or custom source automatically</li>
|
||||
<li>Load thumbnails with arbitrary sizes on background while progressively displaying them</li>
|
||||
<li>Handle zooming thumbnails on the fly</li>
|
||||
<li>Loading thumbnail items in multiple passes (e.g. load meta-data, then low quality image, then high quality image)</li>
|
||||
<li>Loading thumbnails in custom order</li>
|
||||
<li>Loading visible thumbnails first, then all other (and do this even though the user is scrolling the view)</li>
|
||||
<li>Manage updating individual thumbnails or their count on the fly</li>
|
||||
<li>Support showing loading progress</li>
|
||||
</ul>
|
||||
<p>The component is fully customizable and by default inherits native Windows theme. We tested it on Windows 8 with success:</p>
|
||||
<div id="attachment_824" style="width: 404px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2012/12/w8-theme.jpg"><img class=" wp-image-824 " title="Better Thumbnail Browser with Windows 8 Theme" src="../../../wp-content/uploads/2012/12/w8-theme.jpg" alt="Better Thumbnail Browser with Windows 8 Theme" width="394" height="283" /></a><p class="wp-caption-text">Better Thumbnail Browser with Windows 8 Theme</p></div>
|
||||
<p> </p>
|
||||
<p>Better Thumbnail Browser contains default implementation for loading thumbnail images from disk. If you want to gather all images from a given folder (say “c:\images”), display them in Better Thumbnail Browser and load them on background, the code is particularly simple:</p>
|
||||
<pre>thumbnailBrowser.Path = "c:\\images";</pre>
|
||||
<p>And that’s it!</p>
|
||||
<p>Better Thumbnail Browser will be our third component which is used in end-user consumer-level software package. This ensures future development, improvements and support.</p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/better-thumbnail-browser-component-released/feed/</wfw:commentRss>
|
||||
<slash:comments>1</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Better ListView 2.10 released</title>
|
||||
<link>http://www.componentowl.com/blog/better-listview-2-10-released/</link>
|
||||
<comments>http://www.componentowl.com/blog/better-listview-2-10-released/#respond</comments>
|
||||
<pubDate>Fri, 14 Oct 2011 16:57:54 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[documentation]]></category>
|
||||
<category><![CDATA[fast listview]]></category>
|
||||
<category><![CDATA[migration]]></category>
|
||||
<category><![CDATA[performance]]></category>
|
||||
<category><![CDATA[update]]></category>
|
||||
<category><![CDATA[what's new]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=373</guid>
|
||||
<description><![CDATA[A new version of Better ListView has been released! The control has been optimized for greater performance when working with many items and we also implemented all members necessary for smooth migration from .NET ListView. The documentation has been extended and more samples for both C# and Visual Basic has been added.]]></description>
|
||||
<content:encoded><![CDATA[<p>A new version with major improvements, optimizations and fixes has been released! It addresses many suggestions provided by you, our valued customers.</p>
|
||||
<h1>Improved Performance</h1>
|
||||
<p>We put a considerable effort into optimizing Better ListView 2 to provide advanced features (e.g. hierarchical and multi-line items, collapsible groups) while still being swift and responsive.</p>
|
||||
<p>The overall performance has greatly improved. Better ListView 2.1 can easily handle 10.000 items while still being very fast. The parts where improvements are best seen are:</p>
|
||||
<div>
|
||||
<ul>
|
||||
<li>Adding many items to the list</li>
|
||||
<li>Expanding/collapsing of hierarchical items</li>
|
||||
<li>Resizing a column</li>
|
||||
</ul>
|
||||
<div>We also added new options in the <em>Performance</em> property group, so you can easily switch between fast and powerful options.</div>
|
||||
</div>
|
||||
<h1>Samples in both C# and Visual Basic</h1>
|
||||
<p>We added easy to understand samples for both C# and Visual Basic.</p>
|
||||
<p>You can simply follow a link from start menu to open the Visual Studio project for your favourite language, and play with all the features of Better ListView.</p>
|
||||
<div id="attachment_380" style="width: 487px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2011/10/samples-cs-vb.png"><img class="size-full wp-image-380" title="samples-cs-vb" src="../../../wp-content/uploads/2011/10/samples-cs-vb.png" alt="C# and VB Samples projects in Solution Explorer" width="477" height="128" srcset="../../../wp-content/uploads/2011/10/samples-cs-vb.png 477w, ../../../wp-content/uploads/2011/10/samples-cs-vb-300x80.png 300w" sizes="(max-width: 477px) 100vw, 477px" /></a><p class="wp-caption-text">C# and VB Samples projects in Solution Explorer</p></div>
|
||||
<p> </p>
|
||||
<h1>Extended Documentation</h1>
|
||||
<p>We added a <strong>Quick Start Tutorial</strong> to help you with setup, activation and integration of Better ListView in your projects, as well as <strong>many entirely new chapters</strong> in the documentation.</p>
|
||||
<p>All code samples are from now on provided in both C# and Visual Basic to be easy to understand to both C# and VB.net developers.</p>
|
||||
<h1>Smoother migration from .NET ListView to Better ListView</h1>
|
||||
<p>Better ListView now contains all the constructor/method overloads and properties of the regular .NET ListView, so that for each member of .NET ListView there is an easily discoverable equivalent in Better ListView.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/better-listview-2-10-released/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Better ListView 2.00 released</title>
|
||||
<link>http://www.componentowl.com/blog/better-listview-2-00-released/</link>
|
||||
<comments>http://www.componentowl.com/blog/better-listview-2-00-released/#respond</comments>
|
||||
<pubDate>Sun, 31 Jul 2011 15:25:39 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
<category><![CDATA[2.00]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[bound]]></category>
|
||||
<category><![CDATA[child items in listview]]></category>
|
||||
<category><![CDATA[data]]></category>
|
||||
<category><![CDATA[databinding]]></category>
|
||||
<category><![CDATA[groups]]></category>
|
||||
<category><![CDATA[hierarchy]]></category>
|
||||
<category><![CDATA[item hierarchy]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[multi-line]]></category>
|
||||
<category><![CDATA[multiline]]></category>
|
||||
<category><![CDATA[nodes]]></category>
|
||||
<category><![CDATA[tree]]></category>
|
||||
<category><![CDATA[treeview]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=304</guid>
|
||||
<description><![CDATA[A new major version version of Better ListView has been released! It adds new major features, including item hierarchy, groups, data-binding, and more.]]></description>
|
||||
<content:encoded><![CDATA[<p style="text-align: left;">A new major version of Better ListView has been released! <a href="../../../../betterlistview.exe">Download the new version</a>.</p>
|
||||
<div id="attachment_312" style="width: 310px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2011/07/betterlistview2-overview1.png"><img class="size-medium wp-image-312" title="betterlistview2-overview" src="../../../wp-content/uploads/2011/07/betterlistview2-overview1-300x279.png" alt="Item hierarchy with multi-line items in groups" width="300" height="279" srcset="../../../wp-content/uploads/2011/07/betterlistview2-overview1-300x279.png 300w, ../../../wp-content/uploads/2011/07/betterlistview2-overview1.png 568w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">Item hierarchy with multi-line items in groups</p></div>
|
||||
<h1>Summary of what’s new:</h1>
|
||||
<p>We have added four new major features:</p>
|
||||
<ul>
|
||||
<li><strong>Groups</strong> – items can be organized in collapsible groups</li>
|
||||
<li><strong>Item Hierarchy</strong> – items can be organized in a tree structure, can be also collapsed just like the nodes in a <em>TreeView</em></li>
|
||||
<li><strong>Multi-Line Items</strong> – item texts can break in several lines and each item can have different size</li>
|
||||
<li><strong>Data Binding</strong> – complex data binding is fully supported, any <em>List</em>, <em>DataTable</em>, <em>DataView</em>, <em>array</em> or any other <em>IList</em>-type object can be bound to Better ListView as a data source</li>
|
||||
</ul>
|
||||
<p>Many existing features of Better ListView has been enhanced in favor of these. For example:</p>
|
||||
<ul>
|
||||
<li>Item reordering can be done with hierarchical items as well; user can even create child items</li>
|
||||
<li>It is possible to move items between different groups</li>
|
||||
</ul>
|
||||
<p>Some of the minor features added are:</p>
|
||||
<ul>
|
||||
<li>Layouts can be adjustable – item sizes and spacings, even internal spacings</li>
|
||||
<li>Added new label editing controls (calendar and drop down box)</li>
|
||||
<li>Better ListView content (columns, items and groups) can be saved to file (XML or binary)</li>
|
||||
<li>Multi-line items support added</li>
|
||||
<li><a title="Better ListView 2.000 Changelog" href="http://www.componentowl.com/better-listview/releases?since=2.000">See full changelog</a> for details</li>
|
||||
</ul>
|
||||
<p>We have also fixed many issues and improved performance of Thumbnails view and operations with collections.</p>
|
||||
<h1>About then new version</h1>
|
||||
<p>The new version 2.00 brings new major features, the most important one being item hierarchy support. This allows you to create tree-list structures in the list view, without having to sacrifice any of the list view functionality (columns, sorting, grouping, Drag and Drop reordering, etc).</p>
|
||||
<p>Highly customizable item grouping capabilities were added. Individual group headers can have customized look and behavior. The group headers can be collapsible, support images, custom context menus, are focusable, and more.</p>
|
||||
<p>Version 2.0 also improves the thumbnail view. The control handles larger images smoothly, even while resizing. </p>
|
||||
<p>List items, group headers and column header can newly have custom padding specified for all of their elements, which makes it easy to do owner drawing of custom elements, such as overlay icons in the thumbnail view. Every part of the control can be newly replaced by custom drawing, not just overdrawn.</p>
|
||||
<p>Version 2.0 newly allows you to save/load the list view contents with 1 just line of code, either in XML or binary format, to either file or string. Data-binding with custom column-mapping is supported as well. </p>
|
||||
<p>Multi-line listview items are also newly supported. List items with very long text can take place of two (r more) regular items, so the text whole text is readable.</p>
|
||||
<div id="attachment_306" style="width: 310px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2011/07/betterlistview2-overview2.png"><img class="size-medium wp-image-306" title="betterlistview2-overview2" src="../../../wp-content/uploads/2011/07/betterlistview2-overview2-300x262.png" alt="Better ListView 2" width="300" height="262" srcset="../../../wp-content/uploads/2011/07/betterlistview2-overview2-300x262.png 300w, ../../../wp-content/uploads/2011/07/betterlistview2-overview2.png 568w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">Thumbnails in groups</p></div>
|
||||
<div id="attachment_315" style="width: 310px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2011/07/betterlistview2-overview3.png"><img class="size-medium wp-image-315" title="betterlistview2-overview3" src="../../../wp-content/uploads/2011/07/betterlistview2-overview3-300x280.png" alt="DataTable bound to Better ListView" width="300" height="280" srcset="../../../wp-content/uploads/2011/07/betterlistview2-overview3-300x280.png 300w, ../../../wp-content/uploads/2011/07/betterlistview2-overview3.png 575w" sizes="(max-width: 300px) 100vw, 300px" /></a><p class="wp-caption-text">DataTable bound to Better ListView</p></div>
|
||||
<h1>Other news – new comics for developers!</h1>
|
||||
<p>We’ve also started publishing <strong><a href="http://www.componentowl.com/comics/4">new webcomics for developers</a></strong> on our website, drawn by the Better ListView lead developer, Libor Tinka.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/better-listview-2-00-released/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Better ListView 1.52 released</title>
|
||||
<link>http://www.componentowl.com/blog/better-listview-1-52-released/</link>
|
||||
<comments>http://www.componentowl.com/blog/better-listview-1-52-released/#respond</comments>
|
||||
<pubDate>Tue, 29 Mar 2011 16:21:14 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[1.52]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[changelog]]></category>
|
||||
<category><![CDATA[new release]]></category>
|
||||
<category><![CDATA[what's new]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=213</guid>
|
||||
<description><![CDATA[Another minor release with many fixes and some new features. See what’s new in Better ListView 1.52. Download the new version. We are still working on the new major features (Item hierarchy, groups) as described here. These new features are near completion.]]></description>
|
||||
<content:encoded><![CDATA[<p>Another minor release with many fixes and some new features.</p>
|
||||
<p>See <strong><a href="http://www.componentowl.com/better-listview/releases?since=1.52">what’s new in Better ListView 1.52.</a></strong></p>
|
||||
<p><strong><a href="../../../../betterlistview.exe">Download</a></strong> the new version.</p>
|
||||
<p>We are still working on the new major features (Item hierarchy, groups) as described <strong><a href="http://www.componentowl.com/blog/2011/02/what-we-are-working-on-groups-item-hierarchy-support/">here</a></strong>. These new features are near completion.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/better-listview-1-52-released/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Better ListView 1.50 released</title>
|
||||
<link>http://www.componentowl.com/blog/better-listview-1-50-released/</link>
|
||||
<comments>http://www.componentowl.com/blog/better-listview-1-50-released/#respond</comments>
|
||||
<pubDate>Mon, 14 Feb 2011 19:28:55 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=119</guid>
|
||||
<description><![CDATA[We are happy to announce that we’ve released new version (1.50) of Better ListView. You can just Download Better ListView and install it over your current installation. The changes include: New samples and new samples launcher! Added Thumbnails view Added support for image borders Extended owner-drawing capabilities Extended label editing capabilities Changed type of BetterListViewDrawColumnHeaderBackgroundEventArgs.ColumnHeaderBounds […]]]></description>
|
||||
<content:encoded><![CDATA[<p>We are happy to announce that we’ve released new version (1.50) of Better ListView.</p>
|
||||
<p>You can just <strong><a href="http://www.componentowl.com/download/better-listview">Download Better ListView</a></strong> and install it over your current installation.</p>
|
||||
<p>The changes include:</p>
|
||||
<ul>
|
||||
<li>New samples and new samples launcher!</li>
|
||||
<li>Added <a href="http://www.componentowl.com/blog/2011/02/displaying-thumbnails-withs-borders-and-shadows/">Thumbnails view</a></li>
|
||||
<li>Added support for <a href="http://www.componentowl.com/blog/2011/02/displaying-thumbnails-withs-borders-and-shadows/">image borders</a></li>
|
||||
<li>Extended owner-drawing capabilities</li>
|
||||
<li>Extended label editing capabilities</li>
|
||||
<li>Changed type of BetterListViewDrawColumnHeaderBackgroundEventArgs.ColumnHeaderBounds from Rectangle to BetterListViewColumnHeaderBounds (more options available)</li>
|
||||
<li>Fixed behaviour of layouts in special cases</li>
|
||||
<li>Fixed SelectedIndexChanged event raising before Better ListView state has changed</li>
|
||||
<li>Fixed light borders of downsampled images</li>
|
||||
<li>Fixed redraw bug when calling some of the RemoveRange() overrides</li>
|
||||
</ol>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/better-listview-1-50-released/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Better ListView reviewed at DevProConnections.com</title>
|
||||
<link>http://www.componentowl.com/blog/better-listview-reviewed-at-devproconnections-com/</link>
|
||||
<comments>http://www.componentowl.com/blog/better-listview-reviewed-at-devproconnections-com/#respond</comments>
|
||||
<pubDate>Sat, 05 Feb 2011 13:51:20 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=93</guid>
|
||||
<description><![CDATA[Our component got recently reviewed by Mike Riley. The review has a very positive tone. Here are some excerpts: From the Better ListView review at DevProConnections.com: In addition to creating a new ListView control to incorporate broader flexibility and functionality, Better ListView could also be called Fixed ListView, as it corrects a number of annoying […]]]></description>
|
||||
<content:encoded><![CDATA[<p>Our component got recently reviewed by Mike Riley. The review has a very positive tone. Here are some excerpts:</p>
|
||||
<p>From the Better ListView <a href="http://www.devproconnections.com/article/product-review/Review-ComponentOwl-s-Better-ListView.aspx" target="_blank">review</a> at DevProConnections.com:</p>
|
||||
<blockquote><p><strong>In addition to creating a new ListView control to incorporate broader flexibility and functionality, Better ListView could also be called Fixed ListView</strong>, as it corrects a number of annoying problems with the standard ListView that Microsoft delivers to Visual Studio customers. For example, drag and drop and check boxes actually work they way one expects, and column headers and list sorting behave the way they do in the Windows Explorer and other native Windows OS applications. Likewise, improvements that go beyond the standard ListView, such as support for various image sizes and locations (in the column header or subitems, for example) further <strong>elevate Better ListView beyond Microsoft’s offering</strong>.</p></blockquote>
|
||||
<p>The review also states:</p>
|
||||
<blockquote><p><strong>The control is very easy and intuitive to use and is well documented</strong></p></blockquote>
|
||||
<p>The reviewer found the product obviously immensely helpful:</p>
|
||||
<blockquote><p>The enhancements I found most useful for my own projects were the automatic layout, context menus, improved drag and drop, item searching, and sorting options. Thanks to both the source code–included demos, the online documentation, and the obvious property names of the control’s “better” features, <strong>I was able to put the component to use faster than it took me to install the setup package.</strong></p></blockquote>
|
||||
<p>The only negative thing mentioned in the review was our pricing:</p>
|
||||
<blockquote><p>Although I found using the control fast and intuitive, the one aspect that is a downer is the price. Considering that this is the era of .NET component bundles that offer hundreds of components, pricing this single .NET Windows Form control at the price ComponentOwl has is too high for my tastes.</p></blockquote>
|
||||
<p>Let me elaborate on that a bit. Although there are huge component packs for .NET, not a single one of them has a list view like our Better ListView. Most of the list view controls included in “packs” are simply not as powerful, which is only logical. Developers of these packs simply can’t focus their development just on the list view control that much, as they also have other 100 controls to develop and update.</p>
|
||||
<p>However, the biggest drawback of list views that are part of a component packages is this: They usually implement their own class names and conventions, but what’s worse, their own custom look and behavior. These list view controls usually do not look and behave like native list view should. They can easily frustrate the user, right during the first few seconds of using them. I think that the first impression is important. So these controls are not easy drop-in replacements, but rather a whole different approach, which may be suited for some projects, but is IMHO inferior for standard Windows desktop applications, as compared to using controls that respect native look and behavior, like our Better ListView does.</p>
|
||||
<p>Yes, we are perfectionists.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/better-listview-reviewed-at-devproconnections-com/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Better ListView released</title>
|
||||
<link>http://www.componentowl.com/blog/better-listview-released/</link>
|
||||
<comments>http://www.componentowl.com/blog/better-listview-released/#respond</comments>
|
||||
<pubDate>Mon, 03 Jan 2011 12:34:43 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=34</guid>
|
||||
<description><![CDATA[Welcome to our development blog! After a year of hard work, development and testing, we’ve finally released Better ListView. You can learn all about it (screenshots, comparison table, download) at Better ListView page. This blog will feature not just posts about new releases, but also various useful .NET and programming related topics in general. We […]]]></description>
|
||||
<content:encoded><![CDATA[<p>Welcome to our development blog!</p>
|
||||
<p>After a year of hard work, development and testing, we’ve finally released Better ListView.</p>
|
||||
<p>You can learn all about it (screenshots, comparison table, download) at <a href="http://www.componentowl.com/better-listview">Better ListView page</a>.</p>
|
||||
<p>This blog will feature not just posts about new releases, but also various useful .NET and programming related topics in general. We are currently busy with the product launch, but interesting posts are coming soon – definitely stay tuned!</p>
|
||||
<p>Shall you have any questions, don’t hesitate to <a href="http://www.componentowl.com/support">contact us</a>.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/better-listview-released/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:38:23 by W3 Total Cache
|
||||
-->
|
||||
226
public/blog/category/announcements/index.html
Normal file
226
public/blog/category/announcements/index.html
Normal file
@@ -0,0 +1,226 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
|
||||
<head profile="http://gmpg.org/xfn/11">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
|
||||
<meta name="blogcatalog" content="9BC9953358" />
|
||||
<title>Announcements « Owl's Blog on .NET development</title>
|
||||
|
||||
<link rel="stylesheet" href="../../wp-content/themes/componentowl/style.css" type="text/css" media="screen" />
|
||||
<link rel="pingback" href="../../xmlrpc.php.html" />
|
||||
|
||||
|
||||
<link rel='dns-prefetch' href='http://s.w.org/' />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Feed" href="../../feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Comments Feed" href="../../comments/feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Announcements Category Feed" href="feed/index.html" />
|
||||
<script type="text/javascript">
|
||||
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/www.componentowl.com\/blog\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.8"}};
|
||||
!function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55358,56760,9792,65039],[55358,56760,8203,9792,65039]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
|
||||
</script>
|
||||
<style type="text/css">
|
||||
img.wp-smiley,
|
||||
img.emoji {
|
||||
display: inline !important;
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
height: 1em !important;
|
||||
width: 1em !important;
|
||||
margin: 0 .07em !important;
|
||||
vertical-align: -0.1em !important;
|
||||
background: none !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
</style>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery.js%3Fver=1.12.4'></script>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery-migrate.min.js%3Fver=1.4.1'></script>
|
||||
<link rel='https://api.w.org/' href='../../wp-json/index.html' />
|
||||
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="../../xmlrpc.php%3Frsd" />
|
||||
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="../../wp-includes/wlwmanifest.xml" />
|
||||
<meta name="generator" content="WordPress 4.9.8" />
|
||||
<script type="text/javascript" src="../../../javascripts/plugins/jquery.validation.js"></script>
|
||||
<script type="text/javascript" src="../../../javascripts/dextronet.js"></script>
|
||||
<script type="text/javascript" src="../../wp-content/themes/componentowl/javascripts/theme.js"></script>
|
||||
<!--[if IE 6]>
|
||||
<style type="text/css">
|
||||
#d-menu .dropdown .outer { background-image: none; }
|
||||
#d-menu .dropdown .shadowbox { background-image: none; }
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body class="archive category category-announcements category-3">
|
||||
|
||||
<div class="d-page">
|
||||
<div class="d-placing">
|
||||
<div class="d-content-wrap">
|
||||
|
||||
<div class="d-main">
|
||||
|
||||
<h1 class="blog-name"><a href="../../../blog.html">Owl's Blog on .NET development</a></h1>
|
||||
|
||||
<div class="blog-description">Component Owl codes Better ListView control all night so you don't have to.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="pagetitle">Archive for the ‘Announcements’ Category</h2>
|
||||
|
||||
<ul style="line-height: 1.5em">
|
||||
|
||||
<li><a href="../../index.html%3Fp=901.html" rel="bookmark" title="Permanent Link to Sub-item Check Boxes in Better ListView">Sub-item Check Boxes in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=823.html" rel="bookmark" title="Permanent Link to Better Thumbnail Browser Component Released">Better Thumbnail Browser Component Released</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=373.html" rel="bookmark" title="Permanent Link to Better ListView 2.10 released">Better ListView 2.10 released</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=304.html" rel="bookmark" title="Permanent Link to Better ListView 2.00 released">Better ListView 2.00 released</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=213.html" rel="bookmark" title="Permanent Link to Better ListView 1.52 released">Better ListView 1.52 released</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=119.html" rel="bookmark" title="Permanent Link to Better ListView 1.50 released">Better ListView 1.50 released</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=93.html" rel="bookmark" title="Permanent Link to Better ListView reviewed at DevProConnections.com">Better ListView reviewed at DevProConnections.com</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=34.html" rel="bookmark" title="Permanent Link to Better ListView released">Better ListView released</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"></div>
|
||||
<div class="alignright"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-sidebar">
|
||||
|
||||
|
||||
<div class="dextronet-feeds">
|
||||
<ul class="links">
|
||||
<li><a href="../../feed/index.html" class="rss">Subscribe to our RSS</a></li>
|
||||
<li><a href="http://twitter.com/ComponentOwl" class="twitter">Follow us on twitter</a></li>
|
||||
<li><a href="http://facebook.com/ComponentOwl" class="facebook">Follow us on Facebook</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<form role="search" method="get" id="searchform-sidebar" action="../../../blog.html" >
|
||||
<div><label class="screen-reader-text" for="s-sidebar">Search for:</label>
|
||||
<input type="text" value="Search..." name="s" id="s-sidebar" class="search inline-label" />
|
||||
<input type="image" id="searchsubmit-sidebar" src="../../wp-content/themes/componentowl/images/search.gif" value="Search" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="sidebar" role="complementary">
|
||||
<ul>
|
||||
<li id="categories-3" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> <ul>
|
||||
<li class="cat-item cat-item-3 current-cat"><a href="index.html" >Announcements</a> (8)
|
||||
</li>
|
||||
<li class="cat-item cat-item-21"><a href="../better-listview/index.html" >Better ListView</a> (44)
|
||||
</li>
|
||||
<li class="cat-item cat-item-4"><a href="../components/index.html" >Components</a> (9)
|
||||
</li>
|
||||
<li class="cat-item cat-item-222"><a href="../programming/index.html" >Programming</a> (2)
|
||||
</li>
|
||||
<li class="cat-item cat-item-13"><a href="../tutorials/index.html" >Tutorials</a> (19)
|
||||
</li>
|
||||
</ul>
|
||||
</li><li id="archives-3" class="widget widget_archive"><h2 class="widgettitle">Archives</h2> <ul>
|
||||
<li><a href='../../2017/03/index.html'>March 2017</a></li>
|
||||
<li><a href='../../2017/02/index.html'>February 2017</a></li>
|
||||
<li><a href='../../2016/11/index.html'>November 2016</a></li>
|
||||
<li><a href='../../2014/08/index.html'>August 2014</a></li>
|
||||
<li><a href='../../2014/07/index.html'>July 2014</a></li>
|
||||
<li><a href='../../2014/04/index.html'>April 2014</a></li>
|
||||
<li><a href='../../2014/02/index.html'>February 2014</a></li>
|
||||
<li><a href='../../2013/03/index.html'>March 2013</a></li>
|
||||
<li><a href='../../2013/02/index.html'>February 2013</a></li>
|
||||
<li><a href='../../2013/01/index.html'>January 2013</a></li>
|
||||
<li><a href='../../2012/12/index.html'>December 2012</a></li>
|
||||
<li><a href='../../2012/09/index.html'>September 2012</a></li>
|
||||
<li><a href='../../2012/08/index.html'>August 2012</a></li>
|
||||
<li><a href='../../2012/04/index.html'>April 2012</a></li>
|
||||
<li><a href='../../2012/03/index.html'>March 2012</a></li>
|
||||
<li><a href='../../2012/02/index.html'>February 2012</a></li>
|
||||
<li><a href='../../2012/01/index.html'>January 2012</a></li>
|
||||
<li><a href='../../2011/12/index.html'>December 2011</a></li>
|
||||
<li><a href='../../2011/11/index.html'>November 2011</a></li>
|
||||
<li><a href='../../2011/10/index.html'>October 2011</a></li>
|
||||
<li><a href='../../2011/09/index.html'>September 2011</a></li>
|
||||
<li><a href='../../2011/08/index.html'>August 2011</a></li>
|
||||
<li><a href='../../2011/07/index.html'>July 2011</a></li>
|
||||
<li><a href='../../2011/06/index.html'>June 2011</a></li>
|
||||
<li><a href='../../2011/05/index.html'>May 2011</a></li>
|
||||
<li><a href='../../2011/03/index.html'>March 2011</a></li>
|
||||
<li><a href='../../2011/02/index.html'>February 2011</a></li>
|
||||
<li><a href='../../2011/01/index.html'>January 2011</a></li>
|
||||
</ul>
|
||||
</li><li id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widgettitle">Tags</h2><div class="tagcloud"><a href="../../tag/align/index.html" class="tag-cloud-link tag-link-256 tag-link-position-1" style="font-size: 8pt;" aria-label="align (2 items)">align</a>
|
||||
<a href="../../tag/better/index.html" class="tag-cloud-link tag-link-71 tag-link-position-2" style="font-size: 14.326923076923pt;" aria-label="better (8 items)">better</a>
|
||||
<a href="../../tag/better-listview-2/index.html" class="tag-cloud-link tag-link-31 tag-link-position-3" style="font-size: 22pt;" aria-label="better listview (32 items)">better listview</a>
|
||||
<a href="../../tag/bound/index.html" class="tag-cloud-link tag-link-85 tag-link-position-4" style="font-size: 8pt;" aria-label="bound (2 items)">bound</a>
|
||||
<a href="../../tag/child-items-in-listview/index.html" class="tag-cloud-link tag-link-57 tag-link-position-5" style="font-size: 8pt;" aria-label="child items in listview (2 items)">child items in listview</a>
|
||||
<a href="../../tag/column/index.html" class="tag-cloud-link tag-link-89 tag-link-position-6" style="font-size: 10.961538461538pt;" aria-label="column (4 items)">column</a>
|
||||
<a href="../../tag/coming-soon/index.html" class="tag-cloud-link tag-link-52 tag-link-position-7" style="font-size: 8pt;" aria-label="coming soon (2 items)">coming soon</a>
|
||||
<a href="../../tag/custom/index.html" class="tag-cloud-link tag-link-12 tag-link-position-8" style="font-size: 15pt;" aria-label="custom (9 items)">custom</a>
|
||||
<a href="../../tag/data/index.html" class="tag-cloud-link tag-link-84 tag-link-position-9" style="font-size: 8pt;" aria-label="data (2 items)">data</a>
|
||||
<a href="../../tag/databinding/index.html" class="tag-cloud-link tag-link-83 tag-link-position-10" style="font-size: 8pt;" aria-label="databinding (2 items)">databinding</a>
|
||||
<a href="../../tag/drawing/index.html" class="tag-cloud-link tag-link-161 tag-link-position-11" style="font-size: 10.961538461538pt;" aria-label="drawing (4 items)">drawing</a>
|
||||
<a href="../../tag/drawn/index.html" class="tag-cloud-link tag-link-270 tag-link-position-12" style="font-size: 9.6153846153846pt;" aria-label="drawn (3 items)">drawn</a>
|
||||
<a href="../../tag/explorer/index.html" class="tag-cloud-link tag-link-30 tag-link-position-13" style="font-size: 9.6153846153846pt;" aria-label="explorer (3 items)">explorer</a>
|
||||
<a href="../../tag/groups/index.html" class="tag-cloud-link tag-link-22 tag-link-position-14" style="font-size: 10.961538461538pt;" aria-label="groups (4 items)">groups</a>
|
||||
<a href="../../tag/header/index.html" class="tag-cloud-link tag-link-134 tag-link-position-15" style="font-size: 9.6153846153846pt;" aria-label="header (3 items)">header</a>
|
||||
<a href="../../tag/hide/index.html" class="tag-cloud-link tag-link-88 tag-link-position-16" style="font-size: 10.961538461538pt;" aria-label="hide (4 items)">hide</a>
|
||||
<a href="../../tag/hiding/index.html" class="tag-cloud-link tag-link-90 tag-link-position-17" style="font-size: 9.6153846153846pt;" aria-label="hiding (3 items)">hiding</a>
|
||||
<a href="../../tag/hierarchy/index.html" class="tag-cloud-link tag-link-24 tag-link-position-18" style="font-size: 8pt;" aria-label="hierarchy (2 items)">hierarchy</a>
|
||||
<a href="../../tag/hot/index.html" class="tag-cloud-link tag-link-106 tag-link-position-19" style="font-size: 9.6153846153846pt;" aria-label="hot (3 items)">hot</a>
|
||||
<a href="../../tag/image/index.html" class="tag-cloud-link tag-link-277 tag-link-position-20" style="font-size: 8pt;" aria-label="image (2 items)">image</a>
|
||||
<a href="../../tag/images/index.html" class="tag-cloud-link tag-link-7 tag-link-position-21" style="font-size: 9.6153846153846pt;" aria-label="images (3 items)">images</a>
|
||||
<a href="../../tag/item/index.html" class="tag-cloud-link tag-link-23 tag-link-position-22" style="font-size: 10.961538461538pt;" aria-label="item (4 items)">item</a>
|
||||
<a href="../../tag/item-hierarchy/index.html" class="tag-cloud-link tag-link-55 tag-link-position-23" style="font-size: 8pt;" aria-label="item hierarchy (2 items)">item hierarchy</a>
|
||||
<a href="../../tag/items/index.html" class="tag-cloud-link tag-link-107 tag-link-position-24" style="font-size: 17.423076923077pt;" aria-label="items (14 items)">items</a>
|
||||
<a href="../../tag/listview/index.html" class="tag-cloud-link tag-link-5 tag-link-position-25" style="font-size: 16.076923076923pt;" aria-label="listview (11 items)">listview</a>
|
||||
<a href="../../tag/load/index.html" class="tag-cloud-link tag-link-261 tag-link-position-26" style="font-size: 8pt;" aria-label="load (2 items)">load</a>
|
||||
<a href="../../tag/mouse/index.html" class="tag-cloud-link tag-link-41 tag-link-position-27" style="font-size: 8pt;" aria-label="mouse (2 items)">mouse</a>
|
||||
<a href="../../tag/multi-line/index.html" class="tag-cloud-link tag-link-82 tag-link-position-28" style="font-size: 8pt;" aria-label="multi-line (2 items)">multi-line</a>
|
||||
<a href="../../tag/multiline/index.html" class="tag-cloud-link tag-link-81 tag-link-position-29" style="font-size: 9.6153846153846pt;" aria-label="multiline (3 items)">multiline</a>
|
||||
<a href="../../tag/owner/index.html" class="tag-cloud-link tag-link-104 tag-link-position-30" style="font-size: 12.038461538462pt;" aria-label="owner (5 items)">owner</a>
|
||||
<a href="../../tag/ownerdrawn/index.html" class="tag-cloud-link tag-link-273 tag-link-position-31" style="font-size: 8pt;" aria-label="ownerdrawn (2 items)">ownerdrawn</a>
|
||||
<a href="../../tag/padding/index.html" class="tag-cloud-link tag-link-19 tag-link-position-32" style="font-size: 8pt;" aria-label="padding (2 items)">padding</a>
|
||||
<a href="../../tag/progress/index.html" class="tag-cloud-link tag-link-37 tag-link-position-33" style="font-size: 8pt;" aria-label="progress (2 items)">progress</a>
|
||||
<a href="../../tag/space/index.html" class="tag-cloud-link tag-link-240 tag-link-position-34" style="font-size: 9.6153846153846pt;" aria-label="space (3 items)">space</a>
|
||||
<a href="../../tag/spacing/index.html" class="tag-cloud-link tag-link-20 tag-link-position-35" style="font-size: 8pt;" aria-label="spacing (2 items)">spacing</a>
|
||||
<a href="../../tag/sub-item/index.html" class="tag-cloud-link tag-link-113 tag-link-position-36" style="font-size: 10.961538461538pt;" aria-label="sub-item (4 items)">sub-item</a>
|
||||
<a href="../../tag/sub-items/index.html" class="tag-cloud-link tag-link-265 tag-link-position-37" style="font-size: 8pt;" aria-label="sub-items (2 items)">sub-items</a>
|
||||
<a href="../../tag/subitem/index.html" class="tag-cloud-link tag-link-258 tag-link-position-38" style="font-size: 9.6153846153846pt;" aria-label="subitem (3 items)">subitem</a>
|
||||
<a href="../../tag/subitems/index.html" class="tag-cloud-link tag-link-266 tag-link-position-39" style="font-size: 9.6153846153846pt;" aria-label="subitems (3 items)">subitems</a>
|
||||
<a href="../../tag/thumbnails/index.html" class="tag-cloud-link tag-link-6 tag-link-position-40" style="font-size: 8pt;" aria-label="thumbnails (2 items)">thumbnails</a>
|
||||
<a href="../../tag/tree/index.html" class="tag-cloud-link tag-link-80 tag-link-position-41" style="font-size: 8pt;" aria-label="tree (2 items)">tree</a>
|
||||
<a href="../../tag/update/index.html" class="tag-cloud-link tag-link-36 tag-link-position-42" style="font-size: 8pt;" aria-label="update (2 items)">update</a>
|
||||
<a href="../../tag/whats-new/index.html" class="tag-cloud-link tag-link-32 tag-link-position-43" style="font-size: 8pt;" aria-label="what's new (2 items)">what's new</a>
|
||||
<a href="../../tag/working-on/index.html" class="tag-cloud-link tag-link-38 tag-link-position-44" style="font-size: 8pt;" aria-label="working on (2 items)">working on</a>
|
||||
<a href="../../tag/xp/index.html" class="tag-cloud-link tag-link-29 tag-link-position-45" style="font-size: 8pt;" aria-label="xp (2 items)">xp</a></div>
|
||||
</li> </ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type='text/javascript' src='../../wp-includes/js/wp-embed.min.js%3Fver=4.9.8'></script>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:37:02 by W3 Total Cache
|
||||
-->
|
||||
525
public/blog/category/better-listview/feed/index.html
Normal file
525
public/blog/category/better-listview/feed/index.html
Normal file
@@ -0,0 +1,525 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
|
||||
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/"
|
||||
>
|
||||
|
||||
<channel>
|
||||
<title>Better ListView – Owl's Blog on .NET development</title>
|
||||
<atom:link href="http://www.componentowl.com/blog/category/better-listview/feed/" rel="self" type="application/rss+xml" />
|
||||
<link>http://www.componentowl.com/blog</link>
|
||||
<description>Component Owl codes Better ListView control all night so you don't have to.</description>
|
||||
<lastBuildDate>Tue, 04 Sep 2018 13:10:05 +0000</lastBuildDate>
|
||||
<language>en-US</language>
|
||||
<sy:updatePeriod>hourly</sy:updatePeriod>
|
||||
<sy:updateFrequency>1</sy:updateFrequency>
|
||||
<generator>https://wordpress.org/?v=4.9.8</generator>
|
||||
<item>
|
||||
<title>Activation issues and how to solve them</title>
|
||||
<link>http://www.componentowl.com/blog/activation-issues-and-how-to-solve-them/</link>
|
||||
<comments>http://www.componentowl.com/blog/activation-issues-and-how-to-solve-them/#respond</comments>
|
||||
<pubDate>Wed, 01 Mar 2017 17:22:52 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=927</guid>
|
||||
<description><![CDATA[Dear Readers, Periodically we get emails from users having problems with the activation. So we put together a check list on how to deal with the most frequent issues. In case these fixes do not help you solve your problem, please contact contact support at support@componentowl.com and we will be happy to help you out. […]]]></description>
|
||||
<content:encoded><![CDATA[<p>Dear Readers,<br />
|
||||
Periodically we get emails from users having problems with the activation. So we put together a check list on how to deal with the most frequent issues. In case these fixes do not help you solve your problem, please contact contact support at <a href="mailto:support@componentowl.com">support@componentowl.com</a> and we will be happy to help you out.<br />
|
||||
Below, you will find some obstacles we have stumbled across in the past.</p>
|
||||
<ol>
|
||||
<li>Try to <strong>rebuild</strong> the project/solution</li>
|
||||
<li><strong>Restart</strong> Visual Studio if rebuilding the solution did not stop the nag screen</li>
|
||||
<li>If you use Better ListView in a Class Library project, it should be referenced and activated in both, the main project and the Class Library project.</li>
|
||||
<li>Do the main project (executable) and all referenced projects contain the <strong>licenses.licx</strong> file within the Properties folder? If not, rebuild the main project (executable) and copy the licenses.licx file to the appropriate location in all referenced projects (Class Library or other executables).</li>
|
||||
<li>The licenses.licx file should contain only a <strong>single reference</strong> to Better ListView with the current version number (e.g. ComponentOwl.BetterListView.BetterListView, BetterListView, Version=3.7.2.0, Culture=neutral, PublicKeyToken=e6c91a3add447be2). If there are more lines referencing Better ListView, remove the obsolete ones. You can also delete the licenses.licx file and rebuild the project to regenerate it.</li>
|
||||
<li>Run the <strong>Activator</strong> application (installed along with the product) and check if it displays a valid license (license info should be displayed in green).</li>
|
||||
<li>You can try to finish the activation via the <strong>Activator app</strong> and then rebuild the main project. The Activator allows custom proxy settings for activation from behind a web proxy (often present in corporate environments).</li>
|
||||
<li>Check, if the <strong>license-blv.dat</strong> file is present in the “C:\ProgramData\Component Owl\” folder after activation. If not, please contact support at support@componentowl.com</li>
|
||||
<li>Check, if your projects reference the <strong>same version</strong> of Better ListView as the one that is installed. Open the „Reference Properties“ window by right clicking on Better ListView reference in the Solution Explorer. Then check if there is a Specific Version property set to true. If so, remove the reference and add a new reference to Better ListView with the correct version. You can also just set Specific Version property to false.</li>
|
||||
<li>The Better ListView has to be activated on each machine where it is built. Do not copy the license-blv.dat file because this is <strong>specific</strong> to each machine. Rather follow the activation process on each machine.</li>
|
||||
</ol>
|
||||
<p>We hope these clues can help you, in case you encounter a problem during the activation. As mentioned before, please contact support, if the issues persist.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/activation-issues-and-how-to-solve-them/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>The Three Main Advantages Better ListView has Over the Classic .NET Framework</title>
|
||||
<link>http://www.componentowl.com/blog/the-three-main-advantages-componentowl-has-over-the-classic-net-framework/</link>
|
||||
<comments>http://www.componentowl.com/blog/the-three-main-advantages-componentowl-has-over-the-classic-net-framework/#respond</comments>
|
||||
<pubDate>Thu, 09 Feb 2017 21:51:12 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=921</guid>
|
||||
<description><![CDATA[Dear Readers, When evaluating an alternative to replace the .NET ListView you might stumble upon the question: what sets the different solutions available apart from each other? Which one meets my demands the best? Here are the three main reasons we think Better ListView is the ideal solution for you if you are planning to […]]]></description>
|
||||
<content:encoded><![CDATA[<p>Dear Readers,<br />
|
||||
When evaluating an alternative to replace the .NET ListView you might stumble upon the question: what sets the different solutions available apart from each other? Which one meets my demands the best?<br />
|
||||
Here are the three main reasons we think Better ListView is the ideal solution for you if you are planning to use a professional alternative:</p>
|
||||
<p><strong>1) The intuitive approach on getting started</strong></p>
|
||||
<p>The good thing is, you can get started right away. Due to the build-up of processes, as well as the well documented procedures you have almost no learning period. Component Owl keeps its design close to the original .NET ListView so you do not have to get acquainted to a completely new system. But still, the changes made are substantial enough to make your working routine so much easier. Whether its the inbuilt drag & drop, the sub-item images or the multi-column sorting, the processes are meant to make your life easier.</p>
|
||||
<p><strong>2) The fast and helpful support</strong></p>
|
||||
<p>As Component Owl has been on the market for quite a while now, it has been further developed and improved countless times, resulting in a detailed and meaningful FAQ which answer to the majority of your questions. In case you cannot find the answer you need, you can rely on our support system which will give you feedback on you request within 24 hours. This allows you to keep the workflow going with almost no interruptions and puts you ahead of the freeware users.</p>
|
||||
<p><strong>3) The possibility to customize</strong></p>
|
||||
<p>Just like every developer has his own style of working, Component Owl can be customized to every user needs. The many opportunities to adapt your surface to your favorite design or to arrange the necessary tools the way you need them, allows you to optimize your workflow to perform even better.</p>
|
||||
<p>These 3 named advantages are just a few of the many that Component Owl offers you. For more infromation just <a href="http://www.componentowl.com/better-listview">check out</a> our trial version to see for yourself.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/the-three-main-advantages-componentowl-has-over-the-classic-net-framework/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>BLV and Internet Explorer</title>
|
||||
<link>http://www.componentowl.com/blog/blv-and-internet-explorer/</link>
|
||||
<comments>http://www.componentowl.com/blog/blv-and-internet-explorer/#respond</comments>
|
||||
<pubDate>Sun, 13 Nov 2016 22:37:47 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Programming]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=914</guid>
|
||||
<description><![CDATA[As you all know we are constantly working on improving BetterListView, but once in a while you might encounter a problem which has not found its way to our documentation yet.
|
||||
|
||||
Today, our blog post covers an interesting case when using Internet Explorer.]]></description>
|
||||
<content:encoded><![CDATA[<p>As you all know we are constantly working on improving BetterListView, but once in a while you might encounter a problem which has not found its way to our documentation yet.</p>
|
||||
<p>Today, our blog post covers an interesting case when using Internet Explorer.<br />
|
||||
When instantiating an ActiveX control written as a .NET assembly exposed via Interop you might get the following message:</p>
|
||||
<p><code>System.IO.FileNotFoundException("Could not load file or assembly 'BetterListView, Version=3.8.2.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxx' or one of its dependencies. The system cannot find the file specified.")</code></p>
|
||||
<p>The solution to this problem is a fairly simple one, quoting from an <a href="https://msdn.microsoft.com/en-us/library/tzat5yw6">MSDN article</a>:<br />
|
||||
“… you can install it in the global assembly cache so that it can be activated from any COM client. If the assembly is only going to be activated by a single application, you can place it in that application’s directory.”</p>
|
||||
<p>Concluding from this short excerpt, you are basically left you with two options:<br />
|
||||
1) You may register BetterListView in GAC if it is to be shared. But you should be careful with GAC because it allows holding multiple versions of the same assembly. You can make the installer remove any older versions from GAC during installation and add/keep just the newest one.<br />
|
||||
2) You can put your .net assembly with all third-party DLLs in one directory during installation if it is to be private.</p>
|
||||
<p>We recommend the second solution as we reckon it to be the safer one.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/blv-and-internet-explorer/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Centering Images in Better ListView Sub-items</title>
|
||||
<link>http://www.componentowl.com/blog/centering-images-in-better-listview-sub-items/</link>
|
||||
<comments>http://www.componentowl.com/blog/centering-images-in-better-listview-sub-items/#respond</comments>
|
||||
<pubDate>Wed, 06 Aug 2014 21:14:10 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[align]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[center]]></category>
|
||||
<category><![CDATA[column]]></category>
|
||||
<category><![CDATA[columns]]></category>
|
||||
<category><![CDATA[header]]></category>
|
||||
<category><![CDATA[image]]></category>
|
||||
<category><![CDATA[images]]></category>
|
||||
<category><![CDATA[layout]]></category>
|
||||
<category><![CDATA[sub-item]]></category>
|
||||
<category><![CDATA[sub-items]]></category>
|
||||
<category><![CDATA[subitem]]></category>
|
||||
<category><![CDATA[subitems]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=906</guid>
|
||||
<description><![CDATA[How to align images to center in Better ListView sub-items and columns.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_907" style="width: 380px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/08/blv-overlay.png"><img class="size-full wp-image-907" title="Centered images in Better ListView" src="../../../wp-content/uploads/2014/08/blv-overlay.png" alt="Centered images in Better ListView" width="370" height="162" /></a><p class="wp-caption-text">Centered images in Better ListView</p></div>
|
||||
<p>Better ListView 3.11 supports aligning images in sub-items and columns to center. Simply set <strong>AlignHorizontalImage</strong> property of an sub-item or column to <strong>BetterListViewImageAlignmentHorizontal.OverlayCenter</strong>.</p>
|
||||
<p>The image will be centered inside available space regardless of text.</p>
|
||||
<p>This is useful for sub-items and column headers consisting of image only.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/centering-images-in-better-listview-sub-items/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Sub-item Check Boxes in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/#respond</comments>
|
||||
<pubDate>Sun, 06 Jul 2014 21:48:41 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[box]]></category>
|
||||
<category><![CDATA[boxes]]></category>
|
||||
<category><![CDATA[buttons]]></category>
|
||||
<category><![CDATA[cell]]></category>
|
||||
<category><![CDATA[cells]]></category>
|
||||
<category><![CDATA[check]]></category>
|
||||
<category><![CDATA[checkbox]]></category>
|
||||
<category><![CDATA[checkboxes]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[radio]]></category>
|
||||
<category><![CDATA[radios]]></category>
|
||||
<category><![CDATA[sub-item]]></category>
|
||||
<category><![CDATA[subitem]]></category>
|
||||
<category><![CDATA[subitems]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=901</guid>
|
||||
<description><![CDATA[How to display fully interactive check boxes and radio buttons in Better ListView sub-items.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_902" style="width: 395px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/07/blv-sub-item-checkboxes.png"><img class="size-full wp-image-902" title="blv-sub-item-checkboxes" src="../../../wp-content/uploads/2014/07/blv-sub-item-checkboxes.png" alt="Better ListView Sub-item Check Boxes" width="385" height="82" /></a><p class="wp-caption-text">Better ListView Sub-item Check Boxes</p></div>
|
||||
<p><a href="../../../../betterlistview.exe">Better ListView 3.10.0</a> allows displaying fully interactive check boxes and even radio buttons in sub-item cells.</p>
|
||||
<p>This feature can be activated simply by setting <strong>CheckBoxAppearance</strong> property of a given sub-item to other value than <strong>Hide</strong>. Such sub-item will not display check box or radio instead of image and text.</p>
|
||||
<p>Please note the first sub-item’s properties do not apply as they are overriden by item’s properties. These two are separate for the case of column reordering (keeping consistency of sub-item states).</p>
|
||||
<p>Another new feature in Better ListView is that check boxes or radios can be displayed disabled. This can be achieved by setting <strong>CheckEnabled</strong> property to <strong>false</strong> on the respective item or sub-item.</p>
|
||||
<p>Sub-item check boxes can be operated by both mouse and keyboard. Checking sub-item with keyboard can be done by navigating focus rectangle by arrow keys to the given sub-item and pressing spacebar.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>How to Add Grid Lines in Empty Space in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/how-to-add-grid-lines-in-empty-space-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/how-to-add-grid-lines-in-empty-space-in-better-listview/#respond</comments>
|
||||
<pubDate>Wed, 30 Apr 2014 09:51:46 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[below]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[empty]]></category>
|
||||
<category><![CDATA[grid]]></category>
|
||||
<category><![CDATA[gridlines]]></category>
|
||||
<category><![CDATA[lines]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[space]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=894</guid>
|
||||
<description><![CDATA[How to draw grid lines below last item in Better ListView]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_895" style="width: 271px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/04/blv-gridlines-1.png"><img class="size-full wp-image-895 " title="Default list without grid lines below items" src="../../../wp-content/uploads/2014/04/blv-gridlines-1.png" alt="Default list without grid lines below items" width="261" height="308" /></a><p class="wp-caption-text">Default list without grid lines below items</p></div>
|
||||
<div id="attachment_896" style="width: 271px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/04/blv-gridlines-2.png"><img class=" wp-image-896 " title="List with grid lines added" src="../../../wp-content/uploads/2014/04/blv-gridlines-2.png" alt="List with grid lines added" width="261" height="308" /></a><p class="wp-caption-text">List with grid lines added</p></div>
|
||||
<p style="text-align: center;">
|
||||
<p>Setting grid lines in Better ListView is easy. Simply make sure you are using <strong>Details</strong> view (the default view). Then you can set <strong>GridLines</strong> property to one of the following values:</p>
|
||||
<ul>
|
||||
<li><strong>None</strong> – grid lines are hidden</li>
|
||||
<li><strong>Horizontal</strong> – only horizontal lines are displayed</li>
|
||||
<li><strong>Vertical</strong> – only vertical lines are displayed</li>
|
||||
<li><strong>Grid</strong> – both horizontal and vertical lines are displayed, forming a grid</li>
|
||||
</ul>
|
||||
<p>None of these settings, however, cause drawing lines <em>below</em> the last visible item, which may be desirable. The reason for this is that Better ListView supports <a href="http://www.componentowl.com/blog/custom-item-height-in-details-view-of-better-listview/">custom item height</a> and there is uncertainity about the spacing between new grid lines (smallest?, largest?, average?) It is up to your choice.</p>
|
||||
<p>To draw new grid lines, handle the <strong>DrawBackground</strong> event (or subclass BetterListView and override the <strong>OnDrawBackground</strong> method) with the following code:</p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
private void ListViewOnDrawBackground(object sender, BetterListViewDrawBackgroundEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
BetterListView listView = (BetterListView)sender;</p>
|
||||
<p> // get last visible item<br />
|
||||
var item = listView.BottomItem;</p>
|
||||
<p> if (item == null)<br />
|
||||
{<br />
|
||||
return;<br />
|
||||
}</p>
|
||||
<p> // measure row height<br />
|
||||
var bounds = listView.GetItemBounds(item);<br />
|
||||
int rowHeight = bounds.BoundsOuterExtended.Height;</p>
|
||||
<p> // draw additional lines<br />
|
||||
Rectangle rectClient = listView.ClientRectangleInner;<br />
|
||||
Pen penGridLines = new Pen(listView.ColorGridLines, 1.0f);</p>
|
||||
<p> int y = (bounds.BoundsOuterExtended.Bottom + rowHeight);</p>
|
||||
<p> while (y < rectClient.Bottom)
|
||||
{
|
||||
eventArgs.Graphics.DrawLine(
|
||||
penGridLines,
|
||||
rectClient.Left,
|
||||
y,
|
||||
rectClient.Right - 1,
|
||||
y);
|
||||
|
||||
y += rowHeight;
|
||||
}
|
||||
|
||||
penGridLines.Dispose();
|
||||
}
|
||||
[/csharp]
|
||||
|
||||
What this code does is getting the last visible item using <strong>BottomItem</strong> property. It is important to get this visible item instead of e.g. first item because <strong>GetItemBounds</strong> method returns non-null value on visible items only. The <strong>GetItemBounds</strong> method reveals item measurement which is used to determine item height and coordinate of its bottom. Finally, we draw new lines using current grid line color (<strong>ColorGridLines</strong> property) until reaching the bottom of the view.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/how-to-add-grid-lines-in-empty-space-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Alternating Rows in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/alternating-rows-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/alternating-rows-in-better-listview/#respond</comments>
|
||||
<pubDate>Tue, 22 Apr 2014 22:38:15 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[alternating]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[colored]]></category>
|
||||
<category><![CDATA[colors]]></category>
|
||||
<category><![CDATA[even]]></category>
|
||||
<category><![CDATA[odd]]></category>
|
||||
<category><![CDATA[rows]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=888</guid>
|
||||
<description><![CDATA[How to set up alternating row colors in Better ListView]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_889" style="width: 234px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/04/blv-alternating-rows.png"><img class="size-full wp-image-889" title="Alternating Rows" src="../../../wp-content/uploads/2014/04/blv-alternating-rows.png" alt="Alternating Rows" width="224" height="220" /></a><p class="wp-caption-text">Alternating Rows</p></div>
|
||||
<p>Lists with alternating row colors are more readable. It is very simple to implement alternating rows in Better ListView.</p>
|
||||
<p>Simply add <strong>DrawItemBackground</strong> event handler and fill background on odd/even items:</p>
|
||||
<p> </p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
private void ListViewOnDrawItemBackground(object sender, BetterListViewDrawItemBackgroundEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
if ((eventArgs.Item.Index & 1) == 1)<br />
|
||||
{<br />
|
||||
eventArgs.Graphics.FillRectangle(Brushes.AliceBlue, eventArgs.ItemBounds.BoundsOuter);<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/alternating-rows-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Search Filtering in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/search-filtering-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/search-filtering-in-better-listview/#comments</comments>
|
||||
<pubDate>Mon, 03 Feb 2014 14:58:30 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=882</guid>
|
||||
<description><![CDATA[How to improve item searching with highlights and dynamic filtering in Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_883" style="width: 93px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/02/image.gif"><img class="size-full wp-image-883" title="Search Filtering" src="../../../wp-content/uploads/2014/02/image.gif" alt="Search Filtering" width="83" height="153" /></a><p class="wp-caption-text">Search Filtering with highlight</p></div>
|
||||
<p>There are few ways of making searching in large list of items more convenient. For example, Better ListView provides <strong>Search Highlighting</strong> and <strong>Item Hiding</strong> features that can be used to improve searching. The above animation shows both of these features in action when searching for a word “pear” using keyboard.</p>
|
||||
<p>The implementation is very simple and involves handling just two events: <strong>ItemSearch</strong> (raised whenever item is searched, e.g. using keyboard ) and <strong>KeyDown</strong>:</p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
var listView = new BetterListView();</p>
|
||||
<p>listView.Items.AddRange(new[] { “apple”, “pear”, “pineapple”, “orange”, “grapefruit”, “cherry”, “avocado” });</p>
|
||||
<p>listView.ItemSearch += listView_ItemSearch;<br />
|
||||
listView.KeyDown += listView_KeyDown;<br />
|
||||
[/csharp]</p>
|
||||
<p>The ItemSearch event handler finds matching items and sets their visibility accordingly. It also updates the highlighting:</p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
void listView_ItemSearch(object sender, BetterListViewItemSearchEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
var listView = (BetterListView)sender;</p>
|
||||
<p> listView.BeginUpdate();</p>
|
||||
<p> // update item visibility according to search query string<br />
|
||||
foreach (var item in listView.Items)<br />
|
||||
{<br />
|
||||
bool match = item.Text.Contains(eventArgs.QueryString);</p>
|
||||
<p> if (match)<br />
|
||||
{<br />
|
||||
item.Visible = true;</p>
|
||||
<p> item.SearchHighlight = new BetterListViewSearchHighlight(<br />
|
||||
0,<br />
|
||||
item.Text.IndexOf(eventArgs.QueryString, StringComparison.Ordinal),<br />
|
||||
eventArgs.QueryString.Length);<br />
|
||||
}<br />
|
||||
else<br />
|
||||
{<br />
|
||||
item.Visible = false;<br />
|
||||
}<br />
|
||||
}</p>
|
||||
<p> listView.EndUpdate();<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p>Finally, the KeyDown event handler resets the view when Escape key is pressed (all items are made visible and the highlight is removed):</p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
void listView_KeyDown(object sender, KeyEventArgs e)<br />
|
||||
{<br />
|
||||
var listView = (BetterListView)sender;</p>
|
||||
<p> listView.BeginUpdate();</p>
|
||||
<p> if (e.KeyCode == Keys.Escape)<br />
|
||||
{<br />
|
||||
// remove search highlight<br />
|
||||
//NOTE: we could use BetterListView.RemoveSearchHighlight() but this applies to visible items only and some items are hidden at the time<br />
|
||||
foreach (var item in listView.Items)<br />
|
||||
{<br />
|
||||
item.SearchHighlight = BetterListViewSearchHighlight.Empty;<br />
|
||||
}</p>
|
||||
<p> // make all items visible<br />
|
||||
foreach (var item in listView.Items)<br />
|
||||
{<br />
|
||||
item.Visible = true;<br />
|
||||
}</p>
|
||||
<p> // mark the key as handled<br />
|
||||
e.Handled = true;</p>
|
||||
<p> // suppress KeyPress event to prevent ItemSearch from happening<br />
|
||||
e.SuppressKeyPress = true;<br />
|
||||
}</p>
|
||||
<p> listView.EndUpdate();<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p>And that’s it!</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/search-filtering-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>2</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Custom Scroll Bar Size in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/#comments</comments>
|
||||
<pubDate>Tue, 19 Mar 2013 15:56:22 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[bars]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[custom]]></category>
|
||||
<category><![CDATA[height]]></category>
|
||||
<category><![CDATA[large]]></category>
|
||||
<category><![CDATA[larger]]></category>
|
||||
<category><![CDATA[scroll]]></category>
|
||||
<category><![CDATA[scrollbar]]></category>
|
||||
<category><![CDATA[scrollbars]]></category>
|
||||
<category><![CDATA[size]]></category>
|
||||
<category><![CDATA[sizes]]></category>
|
||||
<category><![CDATA[width]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=878</guid>
|
||||
<description><![CDATA[How to make custom-sized scroll bars in Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_879" style="width: 319px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/03/blv-scroll-size.png"><img class="size-full wp-image-879" title="Better ListView custom scroll bar size" src="../../../wp-content/uploads/2013/03/blv-scroll-size.png" alt="Better ListView custom scroll bar size" width="309" height="208" /></a><p class="wp-caption-text">Better ListView custom scroll bar size</p></div>
|
||||
<p><a href="../../../../betterlistview.exe">Better ListView 3.7.0</a> contains two new properties that allow you to set custom horizontal and vertical scroll bar sizes:</p>
|
||||
<ul>
|
||||
<li><strong>HScrollBarWidth</strong></li>
|
||||
<li><strong>VScrollBarHeight</strong></li>
|
||||
</ul>
|
||||
<p>Of course, you can set these custom sizes in design-time as well as in run-time.</p>
|
||||
<p>Larger scroll bars are practical on modern touch-enabled devices with high resolution screens. The default scroll bar size (17 pixels) may be too small and you may want to make it just large enough for your index finger.</p>
|
||||
<p>This features works in both <a href="http://www.componentowl.com/better-listview">Better ListView</a> and <a href="http://www.componentowl.com/better-listview-express">Better ListView Express</a>.</p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>4</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>How to Make Items Fading on Edges in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/how-to-make-items-fading-on-edges-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/how-to-make-items-fading-on-edges-in-better-listview/#respond</comments>
|
||||
<pubDate>Tue, 05 Mar 2013 15:45:22 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[borders]]></category>
|
||||
<category><![CDATA[boundaries]]></category>
|
||||
<category><![CDATA[drawing]]></category>
|
||||
<category><![CDATA[drawn]]></category>
|
||||
<category><![CDATA[edge]]></category>
|
||||
<category><![CDATA[edges]]></category>
|
||||
<category><![CDATA[fading]]></category>
|
||||
<category><![CDATA[gradient]]></category>
|
||||
<category><![CDATA[items]]></category>
|
||||
<category><![CDATA[over]]></category>
|
||||
<category><![CDATA[owner]]></category>
|
||||
<category><![CDATA[ownerdrawing]]></category>
|
||||
<category><![CDATA[ownerdrawn]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=868</guid>
|
||||
<description><![CDATA[How to create the effect seen on smarphones when items are fading on control's edges with WinForms Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<p><img class="size-full wp-image-869 centered" title="Fading Edges in Better ListView" src="../../../wp-content/uploads/2013/03/blv-fading.png" alt="Fading Edges in Better ListView" width="140" height="148" /></p>
|
||||
<p>I found the effect of fading borders impressive on my smartphone. This is actualy very easy to do as it requires a simple gradient brush.</p>
|
||||
<p>You can obtain the same effect with Better ListView by overriding the <strong>DrawingRedrawCore</strong> method and do the drawing over the items:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
public class FadedListView : BetterListView<br />
|
||||
{<br />
|
||||
/// </p>
|
||||
<summary>
|
||||
/// Default size of the fading gradient.<br />
|
||||
/// </summary>
|
||||
<p> private const int FadingSize = 64;</p>
|
||||
<p> public CustomListView()<br />
|
||||
{<br />
|
||||
// this is required because we will draw outside item boundaries<br />
|
||||
OptimizedInvalidation = false;<br />
|
||||
}</p>
|
||||
<p> protected override void DrawingRedrawCore(Graphics graphics)<br />
|
||||
{<br />
|
||||
base.DrawingRedrawCore(graphics);</p>
|
||||
<p> // get boundaries of items (this excludes column headers and scroll bars)<br />
|
||||
Rectangle rectContent = BoundsContent;</p>
|
||||
<p> // get size of the gradient<br />
|
||||
int fadingSize = Math.Min(<br />
|
||||
FadingSize,<br />
|
||||
rectContent.Height >> 1);</p>
|
||||
<p> // get boundaries of the gradents<br />
|
||||
Rectangle rectFadingTop = new Rectangle(<br />
|
||||
rectContent.Left,<br />
|
||||
rectContent.Top,<br />
|
||||
rectContent.Width,<br />
|
||||
fadingSize);</p>
|
||||
<p> Rectangle rectFadingBottom = new Rectangle(<br />
|
||||
rectContent.Left,<br />
|
||||
rectContent.Bottom – fadingSize,<br />
|
||||
rectContent.Width,<br />
|
||||
fadingSize);</p>
|
||||
<p> // make boundaries larger to avoid rounding errors in gradient brushes<br />
|
||||
rectFadingTop.Inflate(1, 1);<br />
|
||||
rectFadingBottom.Inflate(1, 1);</p>
|
||||
<p> Brush brushFadingTop = new LinearGradientBrush(rectFadingTop, BackColor, Color.Transparent, LinearGradientMode.Vertical);<br />
|
||||
Brush brushFadingBottom = new LinearGradientBrush(rectFadingBottom, Color.Transparent, SystemColors.Window, LinearGradientMode.Vertical);</p>
|
||||
<p> // deflate the gradient boundaries back<br />
|
||||
rectFadingTop.Inflate(-1, -1);<br />
|
||||
rectFadingBottom.Inflate(-1, -1);</p>
|
||||
<p> // draw the gradients<br />
|
||||
graphics.FillRectangle(brushFadingTop, rectFadingTop);<br />
|
||||
graphics.FillRectangle(brushFadingBottom, rectFadingBottom);</p>
|
||||
<p> // cleanup<br />
|
||||
brushFadingTop.Dispose();<br />
|
||||
brushFadingBottom.Dispose();<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Public Class CustomListView<br />
|
||||
Inherits BetterListView<br />
|
||||
”’ </p>
|
||||
<summary>
|
||||
”’ Default size of the fading gradient.<br />
|
||||
”’ </summary>
|
||||
<p> Private Const FadingSize As Integer = 64</p>
|
||||
<p> Public Sub New()<br />
|
||||
‘ this is required because we will draw outside item boundaries<br />
|
||||
OptimizedInvalidation = False<br />
|
||||
End Sub</p>
|
||||
<p> Protected Overrides Sub DrawingRedrawCore(graphics As Graphics)<br />
|
||||
MyBase.DrawingRedrawCore(graphics)</p>
|
||||
<p> ‘ get boundaries of items (this excludes column headers and scroll bars)<br />
|
||||
Dim rectContent As Rectangle = BoundsContent</p>
|
||||
<p> ‘ get size of the gradient<br />
|
||||
Dim fadingSize__1 As Integer = Math.Min(FadingSize, rectContent.Height >> 1)</p>
|
||||
<p> ‘ get boundaries of the gradents<br />
|
||||
Dim rectFadingTop As New Rectangle(rectContent.Left, rectContent.Top, rectContent.Width, fadingSize__1)</p>
|
||||
<p> Dim rectFadingBottom As New Rectangle(rectContent.Left, rectContent.Bottom – fadingSize__1, rectContent.Width, fadingSize__1)</p>
|
||||
<p> ‘ make boundaries larger to avoid rounding errors in gradient brushes<br />
|
||||
rectFadingTop.Inflate(1, 1)<br />
|
||||
rectFadingBottom.Inflate(1, 1)</p>
|
||||
<p> Dim brushFadingTop As Brush = New LinearGradientBrush(rectFadingTop, BackColor, Color.Transparent, LinearGradientMode.Vertical)<br />
|
||||
Dim brushFadingBottom As Brush = New LinearGradientBrush(rectFadingBottom, Color.Transparent, SystemColors.Window, LinearGradientMode.Vertical)</p>
|
||||
<p> ‘ deflate the gradient boundaries back<br />
|
||||
rectFadingTop.Inflate(-1, -1)<br />
|
||||
rectFadingBottom.Inflate(-1, -1)</p>
|
||||
<p> ‘ draw the gradients<br />
|
||||
graphics.FillRectangle(brushFadingTop, rectFadingTop)<br />
|
||||
graphics.FillRectangle(brushFadingBottom, rectFadingBottom)</p>
|
||||
<p> ‘ cleanup<br />
|
||||
brushFadingTop.Dispose()<br />
|
||||
brushFadingBottom.Dispose()<br />
|
||||
End Sub<br />
|
||||
End Class<br />
|
||||
[/vb]</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/how-to-make-items-fading-on-edges-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:37:25 by W3 Total Cache
|
||||
-->
|
||||
298
public/blog/category/better-listview/index.html
Normal file
298
public/blog/category/better-listview/index.html
Normal file
@@ -0,0 +1,298 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
|
||||
<head profile="http://gmpg.org/xfn/11">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
|
||||
<meta name="blogcatalog" content="9BC9953358" />
|
||||
<title>Better ListView « Owl's Blog on .NET development</title>
|
||||
|
||||
<link rel="stylesheet" href="../../wp-content/themes/componentowl/style.css" type="text/css" media="screen" />
|
||||
<link rel="pingback" href="../../xmlrpc.php.html" />
|
||||
|
||||
|
||||
<link rel='dns-prefetch' href='http://s.w.org/' />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Feed" href="../../feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Comments Feed" href="../../comments/feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Better ListView Category Feed" href="feed/index.html" />
|
||||
<script type="text/javascript">
|
||||
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/www.componentowl.com\/blog\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.8"}};
|
||||
!function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55358,56760,9792,65039],[55358,56760,8203,9792,65039]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
|
||||
</script>
|
||||
<style type="text/css">
|
||||
img.wp-smiley,
|
||||
img.emoji {
|
||||
display: inline !important;
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
height: 1em !important;
|
||||
width: 1em !important;
|
||||
margin: 0 .07em !important;
|
||||
vertical-align: -0.1em !important;
|
||||
background: none !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
</style>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery.js%3Fver=1.12.4'></script>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery-migrate.min.js%3Fver=1.4.1'></script>
|
||||
<link rel='https://api.w.org/' href='../../wp-json/index.html' />
|
||||
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="../../xmlrpc.php%3Frsd" />
|
||||
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="../../wp-includes/wlwmanifest.xml" />
|
||||
<meta name="generator" content="WordPress 4.9.8" />
|
||||
<script type="text/javascript" src="../../../javascripts/plugins/jquery.validation.js"></script>
|
||||
<script type="text/javascript" src="../../../javascripts/dextronet.js"></script>
|
||||
<script type="text/javascript" src="../../wp-content/themes/componentowl/javascripts/theme.js"></script>
|
||||
<!--[if IE 6]>
|
||||
<style type="text/css">
|
||||
#d-menu .dropdown .outer { background-image: none; }
|
||||
#d-menu .dropdown .shadowbox { background-image: none; }
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body class="archive category category-better-listview category-21">
|
||||
|
||||
<div class="d-page">
|
||||
<div class="d-placing">
|
||||
<div class="d-content-wrap">
|
||||
|
||||
<div class="d-main">
|
||||
|
||||
<h1 class="blog-name"><a href="../../../blog.html">Owl's Blog on .NET development</a></h1>
|
||||
|
||||
<div class="blog-description">Component Owl codes Better ListView control all night so you don't have to.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="pagetitle">Archive for the ‘Better ListView’ Category</h2>
|
||||
|
||||
<ul style="line-height: 1.5em">
|
||||
|
||||
<li><a href="../../index.html%3Fp=927.html" rel="bookmark" title="Permanent Link to Activation issues and how to solve them">Activation issues and how to solve them</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=921.html" rel="bookmark" title="Permanent Link to The Three Main Advantages Better ListView has Over the Classic .NET Framework">The Three Main Advantages Better ListView has Over the Classic .NET Framework</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=914.html" rel="bookmark" title="Permanent Link to BLV and Internet Explorer">BLV and Internet Explorer</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=906.html" rel="bookmark" title="Permanent Link to Centering Images in Better ListView Sub-items">Centering Images in Better ListView Sub-items</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=901.html" rel="bookmark" title="Permanent Link to Sub-item Check Boxes in Better ListView">Sub-item Check Boxes in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=894.html" rel="bookmark" title="Permanent Link to How to Add Grid Lines in Empty Space in Better ListView">How to Add Grid Lines in Empty Space in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=888.html" rel="bookmark" title="Permanent Link to Alternating Rows in Better ListView">Alternating Rows in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=882.html" rel="bookmark" title="Permanent Link to Search Filtering in Better ListView">Search Filtering in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=878.html" rel="bookmark" title="Permanent Link to Custom Scroll Bar Size in Better ListView">Custom Scroll Bar Size in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=868.html" rel="bookmark" title="Permanent Link to How to Make Items Fading on Edges in Better ListView">How to Make Items Fading on Edges in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=861.html" rel="bookmark" title="Permanent Link to Hot Tracking Items in Better ListView">Hot Tracking Items in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=850.html" rel="bookmark" title="Permanent Link to Binding Images in Better ListView">Binding Images in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=843.html" rel="bookmark" title="Permanent Link to Enabling Search Highlight in Better ListView">Enabling Search Highlight in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=831.html" rel="bookmark" title="Permanent Link to Custom label edit: How to rename file names without extension in Better ListView">Custom label edit: How to rename file names without extension in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=808.html" rel="bookmark" title="Permanent Link to Better ListView Tip: How to Draw Custom Selection">Better ListView Tip: How to Draw Custom Selection</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=803.html" rel="bookmark" title="Permanent Link to Hiding Column Headers in Better ListView">Hiding Column Headers in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=796.html" rel="bookmark" title="Permanent Link to How to Store Better ListView Content in a String (User Request)">How to Store Better ListView Content in a String (User Request)</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=780.html" rel="bookmark" title="Permanent Link to Right-aligned Images in Better ListView">Right-aligned Images in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=771.html" rel="bookmark" title="Permanent Link to Customize Label Editing (Embedded) Control for Each Line in Better ListView">Customize Label Editing (Embedded) Control for Each Line in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=760.html" rel="bookmark" title="Permanent Link to Custom Item Height in Details View of Better ListView">Custom Item Height in Details View of Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=753.html" rel="bookmark" title="Permanent Link to Custom Spacing between Items in Details View">Custom Spacing between Items in Details View</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=546.html" rel="bookmark" title="Permanent Link to Hiding Items in Better ListView">Hiding Items in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../2012/01/read-only-mode-in-better-listview/index.html" rel="bookmark" title="Permanent Link to Read-Only Mode in Better ListView">Read-Only Mode in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=476.html" rel="bookmark" title="Permanent Link to Non-selectable Items in Better ListView">Non-selectable Items in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=480.html" rel="bookmark" title="Permanent Link to Custom Behavior of Group Headers in Better ListView">Custom Behavior of Group Headers in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=478.html" rel="bookmark" title="Permanent Link to Combined Items in Better ListView">Combined Items in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=468.html" rel="bookmark" title="Permanent Link to How To: Dynamically Resize Focused Item">How To: Dynamically Resize Focused Item</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=450.html" rel="bookmark" title="Permanent Link to Displaying Multi-Line Text In ListView">Displaying Multi-Line Text In ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=437.html" rel="bookmark" title="Permanent Link to Vertical Alignment and Text Wrapping in Better ListView">Vertical Alignment and Text Wrapping in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=398.html" rel="bookmark" title="Permanent Link to How to Display Items in Custom States">How to Display Items in Custom States</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=373.html" rel="bookmark" title="Permanent Link to Better ListView 2.10 released">Better ListView 2.10 released</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=359.html" rel="bookmark" title="Permanent Link to Better ListView 2.1: Optimizations Done, Minor Features and Testing">Better ListView 2.1: Optimizations Done, Minor Features and Testing</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=348.html" rel="bookmark" title="Permanent Link to Coming soon: Better ListView 2.1 Optimized for Performance">Coming soon: Better ListView 2.1 Optimized for Performance</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=340.html" rel="bookmark" title="Permanent Link to File Explorer with Better ListView">File Explorer with Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=330.html" rel="bookmark" title="Permanent Link to How to Hide a Column in Better ListView">How to Hide a Column in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../2011/07/windows-theme-support-in-better-listview/index.html" rel="bookmark" title="Permanent Link to Windows Theme Support in Better ListView">Windows Theme Support in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=278.html" rel="bookmark" title="Permanent Link to Better ListView 2.0 Samples Launcher">Better ListView 2.0 Samples Launcher</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=260.html" rel="bookmark" title="Permanent Link to List-View Drag and Drop Item Reorder (Sort)">List-View Drag and Drop Item Reorder (Sort)</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=232.html" rel="bookmark" title="Permanent Link to Better ListView 2.0 Sneak Peek (Item hierarchy, groups, more)">Better ListView 2.0 Sneak Peek (Item hierarchy, groups, more)</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=213.html" rel="bookmark" title="Permanent Link to Better ListView 1.52 released">Better ListView 1.52 released</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=204.html" rel="bookmark" title="Permanent Link to Work in Progress: “Groups” / “Item Hierarchy” Features">Work in Progress: “Groups” / “Item Hierarchy” Features</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=189.html" rel="bookmark" title="Permanent Link to How to Change List View Mouse Wheel Scroll Speed">How to Change List View Mouse Wheel Scroll Speed</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=129.html" rel="bookmark" title="Permanent Link to What we are working on: Groups, Item hierarchy support">What we are working on: Groups, Item hierarchy support</a></li>
|
||||
|
||||
<li><a href="../../2011/02/displaying-thumbnails-withs-borders-and-shadows/index.html" rel="bookmark" title="Permanent Link to Displaying Thumbnails with Borders and Shadows">Displaying Thumbnails with Borders and Shadows</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"></div>
|
||||
<div class="alignright"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-sidebar">
|
||||
|
||||
|
||||
<div class="dextronet-feeds">
|
||||
<ul class="links">
|
||||
<li><a href="../../feed/index.html" class="rss">Subscribe to our RSS</a></li>
|
||||
<li><a href="http://twitter.com/ComponentOwl" class="twitter">Follow us on twitter</a></li>
|
||||
<li><a href="http://facebook.com/ComponentOwl" class="facebook">Follow us on Facebook</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<form role="search" method="get" id="searchform-sidebar" action="../../../blog.html" >
|
||||
<div><label class="screen-reader-text" for="s-sidebar">Search for:</label>
|
||||
<input type="text" value="Search..." name="s" id="s-sidebar" class="search inline-label" />
|
||||
<input type="image" id="searchsubmit-sidebar" src="../../wp-content/themes/componentowl/images/search.gif" value="Search" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="sidebar" role="complementary">
|
||||
<ul>
|
||||
<li id="categories-3" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> <ul>
|
||||
<li class="cat-item cat-item-3"><a href="../announcements/index.html" >Announcements</a> (8)
|
||||
</li>
|
||||
<li class="cat-item cat-item-21 current-cat"><a href="index.html" >Better ListView</a> (44)
|
||||
</li>
|
||||
<li class="cat-item cat-item-4"><a href="../components/index.html" >Components</a> (9)
|
||||
</li>
|
||||
<li class="cat-item cat-item-222"><a href="../programming/index.html" >Programming</a> (2)
|
||||
</li>
|
||||
<li class="cat-item cat-item-13"><a href="../tutorials/index.html" >Tutorials</a> (19)
|
||||
</li>
|
||||
</ul>
|
||||
</li><li id="archives-3" class="widget widget_archive"><h2 class="widgettitle">Archives</h2> <ul>
|
||||
<li><a href='../../2017/03/index.html'>March 2017</a></li>
|
||||
<li><a href='../../2017/02/index.html'>February 2017</a></li>
|
||||
<li><a href='../../2016/11/index.html'>November 2016</a></li>
|
||||
<li><a href='../../2014/08/index.html'>August 2014</a></li>
|
||||
<li><a href='../../2014/07/index.html'>July 2014</a></li>
|
||||
<li><a href='../../2014/04/index.html'>April 2014</a></li>
|
||||
<li><a href='../../2014/02/index.html'>February 2014</a></li>
|
||||
<li><a href='../../2013/03/index.html'>March 2013</a></li>
|
||||
<li><a href='../../2013/02/index.html'>February 2013</a></li>
|
||||
<li><a href='../../2013/01/index.html'>January 2013</a></li>
|
||||
<li><a href='../../2012/12/index.html'>December 2012</a></li>
|
||||
<li><a href='../../2012/09/index.html'>September 2012</a></li>
|
||||
<li><a href='../../2012/08/index.html'>August 2012</a></li>
|
||||
<li><a href='../../2012/04/index.html'>April 2012</a></li>
|
||||
<li><a href='../../2012/03/index.html'>March 2012</a></li>
|
||||
<li><a href='../../2012/02/index.html'>February 2012</a></li>
|
||||
<li><a href='../../2012/01/index.html'>January 2012</a></li>
|
||||
<li><a href='../../2011/12/index.html'>December 2011</a></li>
|
||||
<li><a href='../../2011/11/index.html'>November 2011</a></li>
|
||||
<li><a href='../../2011/10/index.html'>October 2011</a></li>
|
||||
<li><a href='../../2011/09/index.html'>September 2011</a></li>
|
||||
<li><a href='../../2011/08/index.html'>August 2011</a></li>
|
||||
<li><a href='../../2011/07/index.html'>July 2011</a></li>
|
||||
<li><a href='../../2011/06/index.html'>June 2011</a></li>
|
||||
<li><a href='../../2011/05/index.html'>May 2011</a></li>
|
||||
<li><a href='../../2011/03/index.html'>March 2011</a></li>
|
||||
<li><a href='../../2011/02/index.html'>February 2011</a></li>
|
||||
<li><a href='../../2011/01/index.html'>January 2011</a></li>
|
||||
</ul>
|
||||
</li><li id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widgettitle">Tags</h2><div class="tagcloud"><a href="../../tag/align/index.html" class="tag-cloud-link tag-link-256 tag-link-position-1" style="font-size: 8pt;" aria-label="align (2 items)">align</a>
|
||||
<a href="../../tag/better/index.html" class="tag-cloud-link tag-link-71 tag-link-position-2" style="font-size: 14.326923076923pt;" aria-label="better (8 items)">better</a>
|
||||
<a href="../../tag/better-listview-2/index.html" class="tag-cloud-link tag-link-31 tag-link-position-3" style="font-size: 22pt;" aria-label="better listview (32 items)">better listview</a>
|
||||
<a href="../../tag/bound/index.html" class="tag-cloud-link tag-link-85 tag-link-position-4" style="font-size: 8pt;" aria-label="bound (2 items)">bound</a>
|
||||
<a href="../../tag/child-items-in-listview/index.html" class="tag-cloud-link tag-link-57 tag-link-position-5" style="font-size: 8pt;" aria-label="child items in listview (2 items)">child items in listview</a>
|
||||
<a href="../../tag/column/index.html" class="tag-cloud-link tag-link-89 tag-link-position-6" style="font-size: 10.961538461538pt;" aria-label="column (4 items)">column</a>
|
||||
<a href="../../tag/coming-soon/index.html" class="tag-cloud-link tag-link-52 tag-link-position-7" style="font-size: 8pt;" aria-label="coming soon (2 items)">coming soon</a>
|
||||
<a href="../../tag/custom/index.html" class="tag-cloud-link tag-link-12 tag-link-position-8" style="font-size: 15pt;" aria-label="custom (9 items)">custom</a>
|
||||
<a href="../../tag/data/index.html" class="tag-cloud-link tag-link-84 tag-link-position-9" style="font-size: 8pt;" aria-label="data (2 items)">data</a>
|
||||
<a href="../../tag/databinding/index.html" class="tag-cloud-link tag-link-83 tag-link-position-10" style="font-size: 8pt;" aria-label="databinding (2 items)">databinding</a>
|
||||
<a href="../../tag/drawing/index.html" class="tag-cloud-link tag-link-161 tag-link-position-11" style="font-size: 10.961538461538pt;" aria-label="drawing (4 items)">drawing</a>
|
||||
<a href="../../tag/drawn/index.html" class="tag-cloud-link tag-link-270 tag-link-position-12" style="font-size: 9.6153846153846pt;" aria-label="drawn (3 items)">drawn</a>
|
||||
<a href="../../tag/explorer/index.html" class="tag-cloud-link tag-link-30 tag-link-position-13" style="font-size: 9.6153846153846pt;" aria-label="explorer (3 items)">explorer</a>
|
||||
<a href="../../tag/groups/index.html" class="tag-cloud-link tag-link-22 tag-link-position-14" style="font-size: 10.961538461538pt;" aria-label="groups (4 items)">groups</a>
|
||||
<a href="../../tag/header/index.html" class="tag-cloud-link tag-link-134 tag-link-position-15" style="font-size: 9.6153846153846pt;" aria-label="header (3 items)">header</a>
|
||||
<a href="../../tag/hide/index.html" class="tag-cloud-link tag-link-88 tag-link-position-16" style="font-size: 10.961538461538pt;" aria-label="hide (4 items)">hide</a>
|
||||
<a href="../../tag/hiding/index.html" class="tag-cloud-link tag-link-90 tag-link-position-17" style="font-size: 9.6153846153846pt;" aria-label="hiding (3 items)">hiding</a>
|
||||
<a href="../../tag/hierarchy/index.html" class="tag-cloud-link tag-link-24 tag-link-position-18" style="font-size: 8pt;" aria-label="hierarchy (2 items)">hierarchy</a>
|
||||
<a href="../../tag/hot/index.html" class="tag-cloud-link tag-link-106 tag-link-position-19" style="font-size: 9.6153846153846pt;" aria-label="hot (3 items)">hot</a>
|
||||
<a href="../../tag/image/index.html" class="tag-cloud-link tag-link-277 tag-link-position-20" style="font-size: 8pt;" aria-label="image (2 items)">image</a>
|
||||
<a href="../../tag/images/index.html" class="tag-cloud-link tag-link-7 tag-link-position-21" style="font-size: 9.6153846153846pt;" aria-label="images (3 items)">images</a>
|
||||
<a href="../../tag/item/index.html" class="tag-cloud-link tag-link-23 tag-link-position-22" style="font-size: 10.961538461538pt;" aria-label="item (4 items)">item</a>
|
||||
<a href="../../tag/item-hierarchy/index.html" class="tag-cloud-link tag-link-55 tag-link-position-23" style="font-size: 8pt;" aria-label="item hierarchy (2 items)">item hierarchy</a>
|
||||
<a href="../../tag/items/index.html" class="tag-cloud-link tag-link-107 tag-link-position-24" style="font-size: 17.423076923077pt;" aria-label="items (14 items)">items</a>
|
||||
<a href="../../tag/listview/index.html" class="tag-cloud-link tag-link-5 tag-link-position-25" style="font-size: 16.076923076923pt;" aria-label="listview (11 items)">listview</a>
|
||||
<a href="../../tag/load/index.html" class="tag-cloud-link tag-link-261 tag-link-position-26" style="font-size: 8pt;" aria-label="load (2 items)">load</a>
|
||||
<a href="../../tag/mouse/index.html" class="tag-cloud-link tag-link-41 tag-link-position-27" style="font-size: 8pt;" aria-label="mouse (2 items)">mouse</a>
|
||||
<a href="../../tag/multi-line/index.html" class="tag-cloud-link tag-link-82 tag-link-position-28" style="font-size: 8pt;" aria-label="multi-line (2 items)">multi-line</a>
|
||||
<a href="../../tag/multiline/index.html" class="tag-cloud-link tag-link-81 tag-link-position-29" style="font-size: 9.6153846153846pt;" aria-label="multiline (3 items)">multiline</a>
|
||||
<a href="../../tag/owner/index.html" class="tag-cloud-link tag-link-104 tag-link-position-30" style="font-size: 12.038461538462pt;" aria-label="owner (5 items)">owner</a>
|
||||
<a href="../../tag/ownerdrawn/index.html" class="tag-cloud-link tag-link-273 tag-link-position-31" style="font-size: 8pt;" aria-label="ownerdrawn (2 items)">ownerdrawn</a>
|
||||
<a href="../../tag/padding/index.html" class="tag-cloud-link tag-link-19 tag-link-position-32" style="font-size: 8pt;" aria-label="padding (2 items)">padding</a>
|
||||
<a href="../../tag/progress/index.html" class="tag-cloud-link tag-link-37 tag-link-position-33" style="font-size: 8pt;" aria-label="progress (2 items)">progress</a>
|
||||
<a href="../../tag/space/index.html" class="tag-cloud-link tag-link-240 tag-link-position-34" style="font-size: 9.6153846153846pt;" aria-label="space (3 items)">space</a>
|
||||
<a href="../../tag/spacing/index.html" class="tag-cloud-link tag-link-20 tag-link-position-35" style="font-size: 8pt;" aria-label="spacing (2 items)">spacing</a>
|
||||
<a href="../../tag/sub-item/index.html" class="tag-cloud-link tag-link-113 tag-link-position-36" style="font-size: 10.961538461538pt;" aria-label="sub-item (4 items)">sub-item</a>
|
||||
<a href="../../tag/sub-items/index.html" class="tag-cloud-link tag-link-265 tag-link-position-37" style="font-size: 8pt;" aria-label="sub-items (2 items)">sub-items</a>
|
||||
<a href="../../tag/subitem/index.html" class="tag-cloud-link tag-link-258 tag-link-position-38" style="font-size: 9.6153846153846pt;" aria-label="subitem (3 items)">subitem</a>
|
||||
<a href="../../tag/subitems/index.html" class="tag-cloud-link tag-link-266 tag-link-position-39" style="font-size: 9.6153846153846pt;" aria-label="subitems (3 items)">subitems</a>
|
||||
<a href="../../tag/thumbnails/index.html" class="tag-cloud-link tag-link-6 tag-link-position-40" style="font-size: 8pt;" aria-label="thumbnails (2 items)">thumbnails</a>
|
||||
<a href="../../tag/tree/index.html" class="tag-cloud-link tag-link-80 tag-link-position-41" style="font-size: 8pt;" aria-label="tree (2 items)">tree</a>
|
||||
<a href="../../tag/update/index.html" class="tag-cloud-link tag-link-36 tag-link-position-42" style="font-size: 8pt;" aria-label="update (2 items)">update</a>
|
||||
<a href="../../tag/whats-new/index.html" class="tag-cloud-link tag-link-32 tag-link-position-43" style="font-size: 8pt;" aria-label="what's new (2 items)">what's new</a>
|
||||
<a href="../../tag/working-on/index.html" class="tag-cloud-link tag-link-38 tag-link-position-44" style="font-size: 8pt;" aria-label="working on (2 items)">working on</a>
|
||||
<a href="../../tag/xp/index.html" class="tag-cloud-link tag-link-29 tag-link-position-45" style="font-size: 8pt;" aria-label="xp (2 items)">xp</a></div>
|
||||
</li> </ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type='text/javascript' src='../../wp-includes/js/wp-embed.min.js%3Fver=4.9.8'></script>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:37:00 by W3 Total Cache
|
||||
-->
|
||||
739
public/blog/category/components/feed/index.html
Normal file
739
public/blog/category/components/feed/index.html
Normal file
@@ -0,0 +1,739 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
|
||||
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/"
|
||||
>
|
||||
|
||||
<channel>
|
||||
<title>Components – Owl's Blog on .NET development</title>
|
||||
<atom:link href="http://www.componentowl.com/blog/category/components/feed/" rel="self" type="application/rss+xml" />
|
||||
<link>http://www.componentowl.com/blog</link>
|
||||
<description>Component Owl codes Better ListView control all night so you don't have to.</description>
|
||||
<lastBuildDate>Tue, 04 Sep 2018 13:10:05 +0000</lastBuildDate>
|
||||
<language>en-US</language>
|
||||
<sy:updatePeriod>hourly</sy:updatePeriod>
|
||||
<sy:updateFrequency>1</sy:updateFrequency>
|
||||
<generator>https://wordpress.org/?v=4.9.8</generator>
|
||||
<item>
|
||||
<title>Activation issues and how to solve them</title>
|
||||
<link>http://www.componentowl.com/blog/activation-issues-and-how-to-solve-them/</link>
|
||||
<comments>http://www.componentowl.com/blog/activation-issues-and-how-to-solve-them/#respond</comments>
|
||||
<pubDate>Wed, 01 Mar 2017 17:22:52 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=927</guid>
|
||||
<description><![CDATA[Dear Readers, Periodically we get emails from users having problems with the activation. So we put together a check list on how to deal with the most frequent issues. In case these fixes do not help you solve your problem, please contact contact support at support@componentowl.com and we will be happy to help you out. […]]]></description>
|
||||
<content:encoded><![CDATA[<p>Dear Readers,<br />
|
||||
Periodically we get emails from users having problems with the activation. So we put together a check list on how to deal with the most frequent issues. In case these fixes do not help you solve your problem, please contact contact support at <a href="mailto:support@componentowl.com">support@componentowl.com</a> and we will be happy to help you out.<br />
|
||||
Below, you will find some obstacles we have stumbled across in the past.</p>
|
||||
<ol>
|
||||
<li>Try to <strong>rebuild</strong> the project/solution</li>
|
||||
<li><strong>Restart</strong> Visual Studio if rebuilding the solution did not stop the nag screen</li>
|
||||
<li>If you use Better ListView in a Class Library project, it should be referenced and activated in both, the main project and the Class Library project.</li>
|
||||
<li>Do the main project (executable) and all referenced projects contain the <strong>licenses.licx</strong> file within the Properties folder? If not, rebuild the main project (executable) and copy the licenses.licx file to the appropriate location in all referenced projects (Class Library or other executables).</li>
|
||||
<li>The licenses.licx file should contain only a <strong>single reference</strong> to Better ListView with the current version number (e.g. ComponentOwl.BetterListView.BetterListView, BetterListView, Version=3.7.2.0, Culture=neutral, PublicKeyToken=e6c91a3add447be2). If there are more lines referencing Better ListView, remove the obsolete ones. You can also delete the licenses.licx file and rebuild the project to regenerate it.</li>
|
||||
<li>Run the <strong>Activator</strong> application (installed along with the product) and check if it displays a valid license (license info should be displayed in green).</li>
|
||||
<li>You can try to finish the activation via the <strong>Activator app</strong> and then rebuild the main project. The Activator allows custom proxy settings for activation from behind a web proxy (often present in corporate environments).</li>
|
||||
<li>Check, if the <strong>license-blv.dat</strong> file is present in the “C:\ProgramData\Component Owl\” folder after activation. If not, please contact support at support@componentowl.com</li>
|
||||
<li>Check, if your projects reference the <strong>same version</strong> of Better ListView as the one that is installed. Open the „Reference Properties“ window by right clicking on Better ListView reference in the Solution Explorer. Then check if there is a Specific Version property set to true. If so, remove the reference and add a new reference to Better ListView with the correct version. You can also just set Specific Version property to false.</li>
|
||||
<li>The Better ListView has to be activated on each machine where it is built. Do not copy the license-blv.dat file because this is <strong>specific</strong> to each machine. Rather follow the activation process on each machine.</li>
|
||||
</ol>
|
||||
<p>We hope these clues can help you, in case you encounter a problem during the activation. As mentioned before, please contact support, if the issues persist.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/activation-issues-and-how-to-solve-them/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Custom Scroll Bar Size in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/#comments</comments>
|
||||
<pubDate>Tue, 19 Mar 2013 15:56:22 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[bars]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[custom]]></category>
|
||||
<category><![CDATA[height]]></category>
|
||||
<category><![CDATA[large]]></category>
|
||||
<category><![CDATA[larger]]></category>
|
||||
<category><![CDATA[scroll]]></category>
|
||||
<category><![CDATA[scrollbar]]></category>
|
||||
<category><![CDATA[scrollbars]]></category>
|
||||
<category><![CDATA[size]]></category>
|
||||
<category><![CDATA[sizes]]></category>
|
||||
<category><![CDATA[width]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=878</guid>
|
||||
<description><![CDATA[How to make custom-sized scroll bars in Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_879" style="width: 319px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/03/blv-scroll-size.png"><img class="size-full wp-image-879" title="Better ListView custom scroll bar size" src="../../../wp-content/uploads/2013/03/blv-scroll-size.png" alt="Better ListView custom scroll bar size" width="309" height="208" /></a><p class="wp-caption-text">Better ListView custom scroll bar size</p></div>
|
||||
<p><a href="../../../../betterlistview.exe">Better ListView 3.7.0</a> contains two new properties that allow you to set custom horizontal and vertical scroll bar sizes:</p>
|
||||
<ul>
|
||||
<li><strong>HScrollBarWidth</strong></li>
|
||||
<li><strong>VScrollBarHeight</strong></li>
|
||||
</ul>
|
||||
<p>Of course, you can set these custom sizes in design-time as well as in run-time.</p>
|
||||
<p>Larger scroll bars are practical on modern touch-enabled devices with high resolution screens. The default scroll bar size (17 pixels) may be too small and you may want to make it just large enough for your index finger.</p>
|
||||
<p>This features works in both <a href="http://www.componentowl.com/better-listview">Better ListView</a> and <a href="http://www.componentowl.com/better-listview-express">Better ListView Express</a>.</p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>4</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Binding Images in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/binding-images-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/binding-images-in-better-listview/#respond</comments>
|
||||
<pubDate>Mon, 28 Jan 2013 03:54:22 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[bind]]></category>
|
||||
<category><![CDATA[binding]]></category>
|
||||
<category><![CDATA[bound]]></category>
|
||||
<category><![CDATA[data]]></category>
|
||||
<category><![CDATA[databinding]]></category>
|
||||
<category><![CDATA[databound]]></category>
|
||||
<category><![CDATA[icon]]></category>
|
||||
<category><![CDATA[icons]]></category>
|
||||
<category><![CDATA[imagekey]]></category>
|
||||
<category><![CDATA[imagelist]]></category>
|
||||
<category><![CDATA[images]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=850</guid>
|
||||
<description><![CDATA[How to use images instead of textual data in Better ListView data binding.]]></description>
|
||||
<content:encoded><![CDATA[<p><a href="../../../../betterlistview.exe">Better ListView 3.5</a> have improved data binding functionality. You can adjust how the data rows will be converted to items/sub-items and vice versa. For example, you can show images based on the bound data:</p>
|
||||
<div id="attachment_853" style="width: 270px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/screen-blv-binding3.png"><img class="size-full wp-image-853" title="Better ListView with bound list" src="../../../wp-content/uploads/2013/01/screen-blv-binding3.png" alt="Better ListView with bound list" width="260" height="222" /></a><p class="wp-caption-text">Better ListView with bound list</p></div>
|
||||
<p>Say you have a simple <strong>Server</strong> type:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
public class Server<br />
|
||||
{<br />
|
||||
public string ServerName<br />
|
||||
{<br />
|
||||
get;<br />
|
||||
set;<br />
|
||||
}</p>
|
||||
<p> public int ServerStatus<br />
|
||||
{<br />
|
||||
get;<br />
|
||||
set;<br />
|
||||
}</p>
|
||||
<p> public Server(string name, int status)<br />
|
||||
{<br />
|
||||
ServerName = name;<br />
|
||||
ServerStatus = status;<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Public Class Server</p>
|
||||
<p> Public Property ServerName() As String<br />
|
||||
Get<br />
|
||||
Return m_ServerName<br />
|
||||
End Get<br />
|
||||
Set<br />
|
||||
m_ServerName = Value<br />
|
||||
End Set<br />
|
||||
End Property</p>
|
||||
<p> Public Property ServerStatus() As Integer<br />
|
||||
Get<br />
|
||||
Return m_ServerStatus<br />
|
||||
End Get<br />
|
||||
Set<br />
|
||||
m_ServerStatus = Value<br />
|
||||
End Set<br />
|
||||
End Property</p>
|
||||
<p> Private m_ServerName As String<br />
|
||||
Private m_ServerStatus As Integer</p>
|
||||
<p> Public Sub New(name As String, status As Integer)<br />
|
||||
ServerName = name<br />
|
||||
ServerStatus = status<br />
|
||||
End Sub</p>
|
||||
<p>End Class<br />
|
||||
[/vb]</p>
|
||||
<p>This class contains two properties representing server name and its status. The server name is a textual property and one would like this mapped to item label as usual. However, the server status is a numerical value which have no meaning to the user even when converted to string. In fact, the numerical value can be 0 (<em>offline</em>), 1 (<em>idle</em>) or 2 (<em>running</em>). You may like to display color icons instead of plain strings or numbers. What if we would like to even highlight some items or change other properties during data binding? This is possible through Better ListView data binding customization.</p>
|
||||
<p>First, let’s create a list of <strong>Server</strong> objects and bind this to a Better ListView. We would like to have columns auto-generated, so we set <strong>DataBindColumns</strong> to <strong>true</strong>:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
Server[] servers = new[]<br />
|
||||
{<br />
|
||||
new Server(“Andromeda”, 2),<br />
|
||||
new Server(“Taurus”, 1),<br />
|
||||
new Server(“Himalia”, 2),<br />
|
||||
new Server(“Nanda”, 2),<br />
|
||||
new Server(“Elara”, 0),<br />
|
||||
new Server(“Perseus”, 2),<br />
|
||||
new Server(“Titan”, 1)<br />
|
||||
};</p>
|
||||
<p>ImageList imageList = new ImageList();</p>
|
||||
<p>imageList.ColorDepth = ColorDepth.Depth32Bit;<br />
|
||||
imageList.ImageSize = new Size(16, 16);<br />
|
||||
imageList.Images.AddStrip(Image.FromFile(“status.png”));</p>
|
||||
<p>BetterListView listView = new CustomListView();</p>
|
||||
<p>listView.DataBindColumns = true;<br />
|
||||
listView.DataSource = servers;<br />
|
||||
listView.ImageList = imageList;<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Dim servers As Server() = New () {New Server(“Andromeda”, 2), New Server(“Taurus”, 1), New Server(“Himalia”, 2), New Server(“Nanda”, 2), New Server(“Elara”, 0), New Server(“Perseus”, 2), _<br />
|
||||
New Server(“Titan”, 1)}</p>
|
||||
<p>Dim imageList As New ImageList()</p>
|
||||
<p>imageList.ColorDepth = ColorDepth.Depth32Bit<br />
|
||||
imageList.ImageSize = New Size(16, 16)<br />
|
||||
imageList.Images.AddStrip(Image.FromFile(“status.png”))</p>
|
||||
<p>Dim listView As BetterListView = New CustomListView()</p>
|
||||
<p>listView.DataBindColumns = True<br />
|
||||
listView.DataSource = servers<br />
|
||||
listView.ImageList = imageList<br />
|
||||
[/vb]</p>
|
||||
<p>Let’s take a look on the result:</p>
|
||||
<div id="attachment_851" style="width: 270px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/screen-blv-binding1.png"><img class="size-full wp-image-851" title="Better ListView with bound list" src="../../../wp-content/uploads/2013/01/screen-blv-binding1.png" alt="Better ListView with bound list" width="260" height="173" /></a><p class="wp-caption-text">Better ListView with bound list</p></div>
|
||||
<p> </p>
|
||||
<p>The columns were auto-generated and <strong>Server</strong> properties properly converted to item and sub-item labels. The generated column header labels are just names of the corresponding properties (ServerName, ServerStatus). You can make the names more convenient by providing <strong>DisplayNameAttribute</strong> on the respective properties:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
…</p>
|
||||
<p>[DisplayName(“Server Name”)]<br />
|
||||
public string ServerName<br />
|
||||
{<br />
|
||||
get;<br />
|
||||
set;<br />
|
||||
}</p>
|
||||
<p>[DisplayName(“Status”)]<br />
|
||||
public int ServerStatus<br />
|
||||
{<br />
|
||||
get;<br />
|
||||
set;<br />
|
||||
}</p>
|
||||
<p>…<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
…</p>
|
||||
<p><DisplayName("Server Name")> _<br />
|
||||
Public Property ServerName() As String<br />
|
||||
Get<br />
|
||||
Return m_ServerName<br />
|
||||
End Get<br />
|
||||
Set<br />
|
||||
m_ServerName = Value<br />
|
||||
End Set<br />
|
||||
End Property</p>
|
||||
<p><DisplayName("Status")> _<br />
|
||||
Public Property ServerStatus() As Integer<br />
|
||||
Get<br />
|
||||
Return m_ServerStatus<br />
|
||||
End Get<br />
|
||||
Set<br />
|
||||
m_ServerStatus = Value<br />
|
||||
End Set<br />
|
||||
End Property</p>
|
||||
<p>…<br />
|
||||
[/vb]</p>
|
||||
<p>Now the column names are more user friendly:</p>
|
||||
<div id="attachment_852" style="width: 270px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/screen-blv-binding2.png"><img class="size-full wp-image-852" title="Better ListView with bound list" src="../../../wp-content/uploads/2013/01/screen-blv-binding2.png" alt="Better ListView with bound list" width="260" height="173" /></a><p class="wp-caption-text">Better ListView with bound list</p></div>
|
||||
<p>We will finally add state images (instead of the numbers) and highlight some items. To do that, we have to override <strong>DataCreateItem</strong> method in a class derived from <strong>BetterListView</strong>:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
public class CustomListView : BetterListView<br />
|
||||
{<br />
|
||||
protected override BetterListViewItem DataCreateItem(<br />
|
||||
CurrencyManager currentDataManager,<br />
|
||||
BindingMemberInfo[] currentDisplayMembers,<br />
|
||||
int index)<br />
|
||||
{<br />
|
||||
// create item using the base implementation<br />
|
||||
BetterListViewItem item = base.DataCreateItem(<br />
|
||||
currentDataManager,<br />
|
||||
currentDisplayMembers,<br />
|
||||
index);</p>
|
||||
<p> // get server status from the current Server object<br />
|
||||
int serverStatus = ((Server)currentDataManager.List[index]).ServerStatus;</p>
|
||||
<p> if (serverStatus == 0)<br />
|
||||
{<br />
|
||||
// bold item when server status is 0<br />
|
||||
item.IsBold = true;<br />
|
||||
}</p>
|
||||
<p> // get sub-item corresponding to server status<br />
|
||||
BetterListViewSubItem subItemStatus = item.SubItems[1];</p>
|
||||
<p> subItemStatus.ImageIndex = serverStatus; // set image for the sub-item<br />
|
||||
subItemStatus.Text = “”; // clear sub-item text</p>
|
||||
<p> return item;<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Public Class CustomListView<br />
|
||||
Inherits BetterListView</p>
|
||||
<p> Protected Overrides Function DataCreateItem(currentDataManager As CurrencyManager, currentDisplayMembers As BindingMemberInfo(), index As Integer) As BetterListViewItem</p>
|
||||
<p> ‘ create item using the base implementation<br />
|
||||
Dim item As BetterListViewItem = MyBase.DataCreateItem(currentDataManager, currentDisplayMembers, index)</p>
|
||||
<p> ‘ get server status from the current Server object<br />
|
||||
Dim serverStatus As Integer = DirectCast(currentDataManager.List(index), Server).ServerStatus</p>
|
||||
<p> If serverStatus = 0 Then<br />
|
||||
‘ bold item when server status is 0<br />
|
||||
item.IsBold = True<br />
|
||||
End If</p>
|
||||
<p> ‘ get sub-item corresponding to server status<br />
|
||||
Dim subItemStatus As BetterListViewSubItem = item.SubItems(1)</p>
|
||||
<p> subItemStatus.ImageIndex = serverStatus<br />
|
||||
‘ set image for the sub-item<br />
|
||||
subItemStatus.Text = “”<br />
|
||||
‘ clear sub-item text<br />
|
||||
Return item</p>
|
||||
<p> End Function</p>
|
||||
<p>End Class<br />
|
||||
[/vb]</p>
|
||||
<p>Now the control displays adjusted images and a highlighted item:</p>
|
||||
<div id="attachment_853" style="width: 270px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/screen-blv-binding3.png"><img class="size-full wp-image-853" title="Better ListView with bound list" src="../../../wp-content/uploads/2013/01/screen-blv-binding3.png" alt="Better ListView with bound list" width="260" height="222" /></a><p class="wp-caption-text">Better ListView with bound list</p></div>
|
||||
<p>Note that you can customize data binding the other way as well by overriding the <strong>DataUpdateSubItemToSource</strong> method. This method is responsible for updating the bound data source when item/sub-item value have been modified.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/binding-images-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Enabling Search Highlight in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/enabling-search-highlight-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/enabling-search-highlight-in-better-listview/#comments</comments>
|
||||
<pubDate>Fri, 11 Jan 2013 02:00:17 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[highlight]]></category>
|
||||
<category><![CDATA[highlighting]]></category>
|
||||
<category><![CDATA[items]]></category>
|
||||
<category><![CDATA[list]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[mark]]></category>
|
||||
<category><![CDATA[matched]]></category>
|
||||
<category><![CDATA[search]]></category>
|
||||
<category><![CDATA[searching]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=843</guid>
|
||||
<description><![CDATA[How to use and customize Search Highlight feature in Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<p>We have improved <a href="../../../wp-content/uploads/2013/01/chapter-search.html">item searching</a> capabilities of <a href="http://www.componentowl.com/better-listview">Better ListView</a> by introducing <strong>Search Highlight</strong> feature. This feature automatically shows search matches and works out of the box with both searching by typing and searching from code (e.g. using search box):</p>
|
||||
<div id="attachment_844" style="width: 358px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/search-highlight-1.gif"><img class="size-full wp-image-844" title="Search Highlight Feature" src="../../../wp-content/uploads/2013/01/search-highlight-1.gif" alt="Search Highlight Feature" width="348" height="193" /></a><p class="wp-caption-text">Search Highlight Feature</p></div>
|
||||
<p> </p>
|
||||
<p>To enable the highlight, simply add <strong>UpdateSearchHighlight</strong> option in the search settings:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
listView.SearchSettings = new BetterListViewSearchSettings(<br />
|
||||
listView.SearchSettings.Mode,<br />
|
||||
listView.SearchSettings.Options | BetterListViewSearchOptions.UpdateSearchHighlight,<br />
|
||||
listView.SearchSettings.SubItemIndices);<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
ListView.SearchSettings = New BetterListViewSearchSettings(<br />
|
||||
listView.SearchSettings.Mode,<br />
|
||||
listView.SearchSettings.Options Or BetterListViewSearchOptions.UpdateSearchHighlight,<br />
|
||||
listView.SearchSettings.SubItemIndices)<br />
|
||||
[/vb]</p>
|
||||
<p>Every item contains information about the match in the <strong>BetterListViewItem.SearchHighlight</strong> property. When <strong>BetterListViewItem.SearchHighlight.IsEmpty</strong> is <strong>true</strong>, the item was not matched by the search. Otherwise it contains information about the matched substring: its index and number of characters.</p>
|
||||
<p>Highlight colors can be adjusted by three properties: <strong>ColorSearchHighlight</strong>, <strong>ColorSearchHighlightBorder</strong> and <strong>ColorSearchHighlightText</strong>:</p>
|
||||
<div id="attachment_846" style="width: 337px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/properties.png"><img class="size-full wp-image-846" title="Search Highlight Properties" src="../../../wp-content/uploads/2013/01/properties.png" alt="Search Highlight Properties" width="327" height="352" /></a><p class="wp-caption-text">Search Highlight Properties</p></div>
|
||||
<p>The display can be adjusted even further with owner drawing:</p>
|
||||
<div id="attachment_845" style="width: 358px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/search-highlight-2.gif"><img class="size-full wp-image-845" title="Customized Search Highlight Feature" src="../../../wp-content/uploads/2013/01/search-highlight-2.gif" alt="Customized Search Highlight Feature" width="348" height="193" /></a><p class="wp-caption-text">Customized Search Highlight Feature</p></div>
|
||||
<p>Here we have used ellipses drawn on item background by modifying <strong>OnDrawItem</strong> and <strong>OnDrawItemBackground</strong> methods of <strong>BetterListView</strong>:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
using System.Drawing;<br />
|
||||
using System.Drawing.Drawing2D;</p>
|
||||
<p>using BetterListView;</p>
|
||||
<p>internal sealed class CustomListView : BetterListView<br />
|
||||
{<br />
|
||||
protected override void OnDrawItem(BetterListViewDrawItemEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
// do not draw search highlight because we will draw our own<br />
|
||||
eventArgs.DrawSearchHighlight = false;</p>
|
||||
<p> base.OnDrawItem(eventArgs);<br />
|
||||
}</p>
|
||||
<p> protected override void OnDrawItemBackground(BetterListViewDrawItemBackgroundEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
base.OnDrawItemBackground(eventArgs);</p>
|
||||
<p> // draw custom search highlight on item background<br />
|
||||
BetterListViewSearchHighlight searchHighlight = eventArgs.Item.SearchHighlight;</p>
|
||||
<p> if (searchHighlight.IsEmpty == false)<br />
|
||||
{<br />
|
||||
eventArgs.Graphics.SmoothingMode = SmoothingMode.HighQuality;</p>
|
||||
<p> Rectangle rectHighlight = eventArgs.ItemBounds.SubItemBounds[searchHighlight.ColumnIndex].BoundsSearchHighlight;</p>
|
||||
<p> Brush brushHighlight = new SolidBrush(Color.FromArgb(128, Color.MediumPurple));<br />
|
||||
Pen penHighlight = new Pen(Color.Purple, 1.0f);</p>
|
||||
<p> eventArgs.Graphics.FillEllipse(brushHighlight, rectHighlight);<br />
|
||||
eventArgs.Graphics.DrawEllipse(penHighlight, rectHighlight);</p>
|
||||
<p> brushHighlight.Dispose();<br />
|
||||
penHighlight.Dispose();<br />
|
||||
}<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Imports System.Drawing<br />
|
||||
Imports System.Drawing.Drawing2D</p>
|
||||
<p>Imports BetterListView</p>
|
||||
<p>Friend NotInheritable Class CustomListView<br />
|
||||
Inherits BetterListView<br />
|
||||
Protected Overrides Sub OnDrawItem(eventArgs As BetterListViewDrawItemEventArgs)<br />
|
||||
‘ do not draw search highlight because we will draw our own<br />
|
||||
eventArgs.DrawSearchHighlight = False</p>
|
||||
<p> MyBase.OnDrawItem(eventArgs)<br />
|
||||
End Sub</p>
|
||||
<p> Protected Overrides Sub OnDrawItemBackground(eventArgs As BetterListViewDrawItemBackgroundEventArgs)<br />
|
||||
MyBase.OnDrawItemBackground(eventArgs)</p>
|
||||
<p> ‘ draw custom search highlight on item background<br />
|
||||
Dim searchHighlight As BetterListViewSearchHighlight = eventArgs.Item.SearchHighlight</p>
|
||||
<p> If searchHighlight.IsEmpty = False Then<br />
|
||||
eventArgs.Graphics.SmoothingMode = SmoothingMode.HighQuality</p>
|
||||
<p> Dim rectHighlight As Rectangle = eventArgs.ItemBounds.SubItemBounds(searchHighlight.ColumnIndex).BoundsSearchHighlight</p>
|
||||
<p> Dim brushHighlight As Brush = New SolidBrush(Color.FromArgb(128, Color.MediumPurple))<br />
|
||||
Dim penHighlight As New Pen(Color.Purple, 1F)</p>
|
||||
<p> eventArgs.Graphics.FillEllipse(brushHighlight, rectHighlight)<br />
|
||||
eventArgs.Graphics.DrawEllipse(penHighlight, rectHighlight)</p>
|
||||
<p> brushHighlight.Dispose()<br />
|
||||
penHighlight.Dispose()<br />
|
||||
End If<br />
|
||||
End Sub<br />
|
||||
End Class<br />
|
||||
[/vb]</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/enabling-search-highlight-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>1</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Custom label edit: How to rename file names without extension in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/custom-label-edit-how-to-rename-file-names-without-extension-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/custom-label-edit-how-to-rename-file-names-without-extension-in-better-listview/#respond</comments>
|
||||
<pubDate>Thu, 20 Dec 2012 17:42:14 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[custom]]></category>
|
||||
<category><![CDATA[edit]]></category>
|
||||
<category><![CDATA[explorer]]></category>
|
||||
<category><![CDATA[extension]]></category>
|
||||
<category><![CDATA[extensions]]></category>
|
||||
<category><![CDATA[file]]></category>
|
||||
<category><![CDATA[filename]]></category>
|
||||
<category><![CDATA[files]]></category>
|
||||
<category><![CDATA[items]]></category>
|
||||
<category><![CDATA[label]]></category>
|
||||
<category><![CDATA[labeledit]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[rename]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=831</guid>
|
||||
<description><![CDATA[How to use Label Edit in Better ListView to allow renaming just file names while displaying full names (filename + extension).]]></description>
|
||||
<content:encoded><![CDATA[<p><a href="../../../wp-content/uploads/2012/12/label-edit.gif"><img class="aligncenter size-full wp-image-832" title="label-edit" src="../../../wp-content/uploads/2012/12/label-edit.gif" alt="" width="291" height="178" /></a></p>
|
||||
<p>Let’s suppose you want to display files with extensions in <a href="http://www.componentowl.com/better-listview">Better ListView</a>, but allow user to rename just the file name, leaving the file extension intact after the editing. </p>
|
||||
<p>The code for this is very simple. Just turn on label editing and handle two events: <strong>BeforeLabelEdit</strong> and <strong>AfterLabelEditCancel</strong>:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
betterListView.LabelEdit = true;</p>
|
||||
<p>betterListView.BeforeLabelEdit += BetterListViewBeforeLabelEdit;<br />
|
||||
betterListView.AfterLabelEditCancel += BetterListViewAfterLabelEditCancel;</p>
|
||||
<p>…</p>
|
||||
<p>void BetterListViewBeforeLabelEdit(object sender, BetterListViewLabelEditCancelEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
string labelOriginal = eventArgs.Label;</p>
|
||||
<p> // keep only file name in the modified label<br />
|
||||
string labelNew = Path.GetFileNameWithoutExtension(labelOriginal);</p>
|
||||
<p> eventArgs.Label = labelNew;<br />
|
||||
}</p>
|
||||
<p>void BetterListViewAfterLabelEditCancel(object sender, BetterListViewLabelEditCancelEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
string labelOriginal = eventArgs.Label;</p>
|
||||
<p> // add extension when editing is complete<br />
|
||||
string labelNew = String.Concat(<br />
|
||||
labelOriginal,<br />
|
||||
Path.GetExtension(eventArgs.SubItem.Text));</p>
|
||||
<p> eventArgs.Label = labelNew;<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
BetterListView.LabelEdit = True</p>
|
||||
<p>AddHandler Me.betterListView.BeforeLabelEdit, AddressOf BetterListViewBeforeLabelEdit<br />
|
||||
AddHandler Me.betterListView.AfterLabelEditCancel, AddressOf BetterListViewAfterLabelEditCancel</p>
|
||||
<p>…</p>
|
||||
<p>Private Sub BetterListViewBeforeLabelEdit(sender As Object, eventArgs As BetterListViewLabelEditCancelEventArgs)<br />
|
||||
Dim labelOriginal As String = eventArgs.Label</p>
|
||||
<p> ‘ keep only file name in the modified label<br />
|
||||
Dim labelNew As String = Path.GetFileNameWithoutExtension(labelOriginal)</p>
|
||||
<p> eventArgs.Label = labelNew<br />
|
||||
End Sub</p>
|
||||
<p>Private Sub BetterListViewAfterLabelEditCancel(sender As Object, eventArgs As BetterListViewLabelEditCancelEventArgs)<br />
|
||||
Dim labelOriginal As String = eventArgs.Label</p>
|
||||
<p> ‘ add extension when editing is complete<br />
|
||||
Dim labelNew As String = [String].Concat(labelOriginal, Path.GetExtension(eventArgs.SubItem.Text))</p>
|
||||
<p> eventArgs.Label = labelNew<br />
|
||||
End Sub<br />
|
||||
[/vb]</p>
|
||||
<p>Naturally, this feature can be used not only for file names, but whenever you would like to edit different view on the data then the displayed one.</p>
|
||||
<p><a href="http://www.componentowl.com/better-listview">Full version of Better ListView</a> supports even custom <a href="../../../wp-content/uploads/2012/12/chapter-embedded-controls.html">embedded editing controls</a> and you have complete control over the label editing process.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/custom-label-edit-how-to-rename-file-names-without-extension-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Better Thumbnail Browser Component Released</title>
|
||||
<link>http://www.componentowl.com/blog/better-thumbnail-browser-component-released/</link>
|
||||
<comments>http://www.componentowl.com/blog/better-thumbnail-browser-component-released/#comments</comments>
|
||||
<pubDate>Sat, 01 Dec 2012 18:26:16 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[background]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[browser]]></category>
|
||||
<category><![CDATA[component]]></category>
|
||||
<category><![CDATA[control]]></category>
|
||||
<category><![CDATA[folder]]></category>
|
||||
<category><![CDATA[image]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[load]]></category>
|
||||
<category><![CDATA[loading]]></category>
|
||||
<category><![CDATA[thumbnail]]></category>
|
||||
<category><![CDATA[thumbnailbrowser]]></category>
|
||||
<category><![CDATA[thumbnails]]></category>
|
||||
<category><![CDATA[winforms]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=823</guid>
|
||||
<description><![CDATA[  We have released a whole new WinForms component called Better Thumbnail Browser. This control is useful for anyone developing photo management software or any kind of image database: The control is capable of loading image thumbnails on background and does all the dirty job of threading and synchronization for you. My motivation to make […]]]></description>
|
||||
<content:encoded><![CDATA[<p> </p>
|
||||
<p>We have released a whole new WinForms component called <a href="http://www.componentowl.com/better-thumbnail-browser">Better Thumbnail Browser</a>. This control is useful for anyone developing photo management software or any kind of image database:</p>
|
||||
<div style="width: 404px" class="wp-caption aligncenter"><a href="http://assets.componentowl.com/screenshots/43/overview_original_1354296079.png?1354270879"><img class=" " title="Better Thumbnail Browser" src="http://assets.componentowl.com/screenshots/43/overview_original_1354296079.png?1354270879" alt="Better Thumbnail Browser Overview" width="394" height="283" /></a><p class="wp-caption-text">Better Thumbnail Browser Overview</p></div>
|
||||
<p>The control is capable of loading image thumbnails on background and does all the dirty job of threading and synchronization for you.</p>
|
||||
<p>My motivation to make such component as lead developer at ComponentOwl.com was to have something that can smoothly integrate in my photo management software.</p>
|
||||
<p>Since we already have <a href="http://www.componentowl.com/better-listview">Better ListView</a> component, which is quite mature (three major releases over two years of development), I decided to build upon it and finally make control for image thumbnails that is both extensible and powerful and have native look and feel.</p>
|
||||
<p>Better Thumbnail Browser inherits most of its functionality from Better ListView (multi column sorting, custom paddings and spacings, multi-line text and groups to name a few). It adds image loading logic on top of it, which can handle various scenarios:</p>
|
||||
<ul>
|
||||
<li>Load images from a folder, database or custom source automatically</li>
|
||||
<li>Load thumbnails with arbitrary sizes on background while progressively displaying them</li>
|
||||
<li>Handle zooming thumbnails on the fly</li>
|
||||
<li>Loading thumbnail items in multiple passes (e.g. load meta-data, then low quality image, then high quality image)</li>
|
||||
<li>Loading thumbnails in custom order</li>
|
||||
<li>Loading visible thumbnails first, then all other (and do this even though the user is scrolling the view)</li>
|
||||
<li>Manage updating individual thumbnails or their count on the fly</li>
|
||||
<li>Support showing loading progress</li>
|
||||
</ul>
|
||||
<p>The component is fully customizable and by default inherits native Windows theme. We tested it on Windows 8 with success:</p>
|
||||
<div id="attachment_824" style="width: 404px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2012/12/w8-theme.jpg"><img class=" wp-image-824 " title="Better Thumbnail Browser with Windows 8 Theme" src="../../../wp-content/uploads/2012/12/w8-theme.jpg" alt="Better Thumbnail Browser with Windows 8 Theme" width="394" height="283" /></a><p class="wp-caption-text">Better Thumbnail Browser with Windows 8 Theme</p></div>
|
||||
<p> </p>
|
||||
<p>Better Thumbnail Browser contains default implementation for loading thumbnail images from disk. If you want to gather all images from a given folder (say “c:\images”), display them in Better Thumbnail Browser and load them on background, the code is particularly simple:</p>
|
||||
<pre>thumbnailBrowser.Path = "c:\\images";</pre>
|
||||
<p>And that’s it!</p>
|
||||
<p>Better Thumbnail Browser will be our third component which is used in end-user consumer-level software package. This ensures future development, improvements and support.</p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/better-thumbnail-browser-component-released/feed/</wfw:commentRss>
|
||||
<slash:comments>1</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>How to Store Better ListView Content in a String (User Request)</title>
|
||||
<link>http://www.componentowl.com/blog/how-to-store-better-listview-content-in-a-string-user-request/</link>
|
||||
<comments>http://www.componentowl.com/blog/how-to-store-better-listview-content-in-a-string-user-request/#respond</comments>
|
||||
<pubDate>Sat, 04 Aug 2012 00:03:49 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[content]]></category>
|
||||
<category><![CDATA[items]]></category>
|
||||
<category><![CDATA[load]]></category>
|
||||
<category><![CDATA[save]]></category>
|
||||
<category><![CDATA[serialization]]></category>
|
||||
<category><![CDATA[serialize]]></category>
|
||||
<category><![CDATA[store]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=796</guid>
|
||||
<description><![CDATA[Is it possible to store entire Better ListView content (items with hierarchy and sub-items, columns and groups) in a single string? Of course!]]></description>
|
||||
<content:encoded><![CDATA[<p>Is it possible to store entire Better ListView content (items with hierarchy and sub-items, columns and groups) in a single string?</p>
|
||||
<p>Better ListView already supports saving and loading its content using <strong>SaveContent</strong> and <strong>LoadContent</strong> methods. These methods support either XML or binary format.</p>
|
||||
<p>I chose binary format for storing data in string because it is more compact than XML. Binary representation (basically an array of bytes) can be converted to Base64 string. Loading the content from string work similarly, the steps are performed in opposite direction:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
// SAVE<br />
|
||||
// create MemoryStream to hold binary data<br />
|
||||
MemoryStream stream = new MemoryStream();<br />
|
||||
// store Better ListView content in memory stream<br />
|
||||
this.listView.SaveContentBinary(stream);<br />
|
||||
// copy content of MemoryStream to byte array<br />
|
||||
byte[] contentBinary = new byte[stream.Length];<br />
|
||||
stream.Seek(0, SeekOrigin.Begin);<br />
|
||||
// convert byte array to Base64 string<br />
|
||||
stream.Read(contentBinary, 0, (int)stream.Length); // move to beginning of the stream<br />
|
||||
string contentStringBase64 = Convert.ToBase64String(contentBinary);<br />
|
||||
// close stream<br />
|
||||
stream.Close();<br />
|
||||
stream.Dispose();</p>
|
||||
<p>// CLEAR<br />
|
||||
this.listView.Clear();</p>
|
||||
<p>// LOAD<br />
|
||||
// create MemoryStream to hold binary data<br />
|
||||
stream = new MemoryStream();<br />
|
||||
// convert Base64 string to byte array<br />
|
||||
contentBinary = Convert.FromBase64String(contentStringBase64);<br />
|
||||
// write byte array to stream<br />
|
||||
stream.Write(contentBinary, 0, contentBinary.Length);<br />
|
||||
stream.Seek(0, SeekOrigin.Begin); // move to beginning of the stream<br />
|
||||
// load content of Better ListView from memory stream<br />
|
||||
this.listView.LoadContentBinary(stream);<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
‘ SAVE<br />
|
||||
‘ create MemoryStream to hold binary data<br />
|
||||
Dim stream As New MemoryStream()<br />
|
||||
‘ store Better ListView content in memory stream<br />
|
||||
Me.listView.SaveContentBinary(stream)<br />
|
||||
‘ copy content of MemoryStream to byte array<br />
|
||||
Dim contentBinary As Byte() = New Byte(stream.Length – 1) {}<br />
|
||||
stream.Seek(0, SeekOrigin.Begin)<br />
|
||||
‘ convert byte array to Base64 string<br />
|
||||
stream.Read(contentBinary, 0, CInt(stream.Length))<br />
|
||||
‘ move to beginning of the stream<br />
|
||||
Dim contentStringBase64 As String = Convert.ToBase64String(contentBinary)<br />
|
||||
‘ close stream<br />
|
||||
stream.Close()<br />
|
||||
stream.Dispose()</p>
|
||||
<p>‘ CLEAR<br />
|
||||
Me.listView.Clear()</p>
|
||||
<p>‘ LOAD<br />
|
||||
‘ create MemoryStream to hold binary data<br />
|
||||
stream = New MemoryStream()<br />
|
||||
‘ convert Base64 string to byte array<br />
|
||||
contentBinary = Convert.FromBase64String(contentStringBase64)<br />
|
||||
‘ write byte array to stream<br />
|
||||
stream.Write(contentBinary, 0, contentBinary.Length)<br />
|
||||
stream.Seek(0, SeekOrigin.Begin)<br />
|
||||
‘ move to beginning of the stream<br />
|
||||
‘ load content of Better ListView from memory stream<br />
|
||||
Me.listView.LoadContentBinary(stream)<br />
|
||||
[/vb]</p>
|
||||
<p> </p>
|
||||
<p>Although saving and loading data this way is convenient, please consider the following drawback:</p>
|
||||
<ul>
|
||||
<li>Standard serialization mechanism of .NET is used for converting <em>classes</em> and <em>structures</em> to XML or binary representation – hence the serialized data may not be possible to deserialize on different version of Better ListView if any public members of the serialized class have been changed.</li>
|
||||
<li>The generated string is very long (few kilobytes for just two items).</li>
|
||||
<li>Lots of data are stored which are not related to content itself (e.g. item colors).</li>
|
||||
<li>The serialized representation is considered read-only – any changes can cause problems with deserialization; if you really want flexible way of storing ListView content, <strong>consider building a model or data layer that supports storing the data you need the way you need</strong>.</li>
|
||||
</ul>
|
||||
<p>On the other hand, using this way may be convenient when you want to <strong>transfer or copy ListView content between controls on even across application domain</strong> (Better ListView itself uses this mechanism to allow Drag and Drop between two applications – this “tour de force” kind of Drag and Drop is not avaiable in regular .NET ListView).</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/how-to-store-better-listview-content-in-a-string-user-request/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>File Explorer with Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/file-explorer-with-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/file-explorer-with-better-listview/#respond</comments>
|
||||
<pubDate>Tue, 09 Aug 2011 16:04:31 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[browser]]></category>
|
||||
<category><![CDATA[explorer]]></category>
|
||||
<category><![CDATA[file]]></category>
|
||||
<category><![CDATA[folder]]></category>
|
||||
<category><![CDATA[tree]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=340</guid>
|
||||
<description><![CDATA[In release 2.0.2 we added a sample demonstrating how Better ListView can be used to construct folder tree and file browser to make a standalone file explorer!]]></description>
|
||||
<content:encoded><![CDATA[<p>In <a href="http://www.componentowl.com/better-listview/releases?since=2.0.2">release 2.0.2</a> we added a sample demonstrating how <a href="../../../../betterlistview.exe">Better ListView</a> can be used to construct folder tree and file browser to make a standalone file explorer:</p>
|
||||
<p><img class="aligncenter" src="../../../wp-content/uploads/2011/08/blv-fileexplorersample.png" alt="File Explorer Sample" width="480" height="314" align="middle" /></p>
|
||||
<p>There are two controls derived from <a href="../../../../betterlistview.exe">BetterListView</a>. One for the navigation pane (folder tree on left side) and one for the file view (on the right side).</p>
|
||||
<p>The <strong>FolderListView</strong> control allows browsing through virtual folders as well as folders on removable drives. We needed this control in our products because .NET does not provide any similar managed control (there is only FolderBrowserDialog, but we actually need a control).</p>
|
||||
<p>You can use it for your purposes as well, it is available in Better ListView Samples source code.</p>
|
||||
<p>Many features of Better ListView can be used to enhance file browsing, for example:</p>
|
||||
<ul>
|
||||
<li><strong>Drag and Drop</strong> – moving or copying files</li>
|
||||
<li><strong>Label Edit</strong> – renaming files</li>
|
||||
<li><strong>Thumbnails</strong> – display thumbnails of image files</li>
|
||||
<li><strong>Custom Tooltips</strong> – display extra information on each file item</li>
|
||||
<li><strong>Groups</strong> – organize files into groups (e.g. by size)</li>
|
||||
<li><strong>Check Boxes</strong> – select folders and sub-folders properly with three-state check boxes</li>
|
||||
<li><strong>Images</strong> – every file type could display different image (extracted icon)</li>
|
||||
<li><strong>Context Menus</strong> – do extra operations with files, like displaying file properties</li>
|
||||
<li><strong>Searching</strong> – doing keyboard search is very easy to search for some file</li>
|
||||
<li><strong>Sorting</strong> – sort files according to multiple properties (<em>this is demonstrated in the sample</em>)</li>
|
||||
<li><strong>Background Image</strong> – show that the user is located in special folder by ambient image on the background</li>
|
||||
</ul>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/file-explorer-with-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Synergy of Better ListView and Our Applications</title>
|
||||
<link>http://www.componentowl.com/blog/synergy-of-better-listview-and-our-applications/</link>
|
||||
<comments>http://www.componentowl.com/blog/synergy-of-better-listview-and-our-applications/#respond</comments>
|
||||
<pubDate>Thu, 27 Jan 2011 19:33:12 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Components]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=40</guid>
|
||||
<description><![CDATA[When developing sofware application, a custom component of some non-trivial scale is sometimes needed. Complex components are often created in companies as internal, single-purpose projects and never see wider public. This would be the case with our custom ListView component, but its scale and versability convinced us to made it available for others. You can […]]]></description>
|
||||
<content:encoded><![CDATA[<p>When developing sofware application, a custom component of some non-trivial scale is sometimes needed. Complex components are often created in companies as internal, single-purpose projects and never see wider public. This would be the case with our custom ListView component, but its scale and versability convinced us to made it available for others. You can read <a href="http://www.componentowl.com/better-listview/story">the story</a> behind, or just take a look on how exactly we use it.</p>
|
||||
<p>We at Dextronet are developing several desktop applications, which benefits from custom components. Our flagship product <a href="http://www.dextronet.com/swift-to-do-list-software/">Swift To-Do List</a> and ImagingShop (yet in the docks) both needed a serious visual component for major part of its client area. Look at screenshots of these applications:</p>
|
||||
<table cellpadding="8" align="center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="../../../wp-content/uploads/2011/01/stdl-full.jpg"><img class="size-medium wp-image-43 " title="stdl-full" src="../../../wp-content/uploads/2011/01/stdl-full-300x206.jpg" alt="Swift To-Do List" width="240" height="165" srcset="../../../wp-content/uploads/2011/01/stdl-full-300x206.jpg 300w, ../../../wp-content/uploads/2011/01/stdl-full.jpg 988w" sizes="(max-width: 240px) 100vw, 240px" /></a></td>
|
||||
<td><a href="../../../wp-content/uploads/2011/01/is-full.jpg"><img class="size-medium wp-image-41 " title="is-full" src="../../../wp-content/uploads/2011/01/is-full-300x229.jpg" alt="ImagingShop" width="240" height="183" srcset="../../../wp-content/uploads/2011/01/is-full-300x229.jpg 300w, ../../../wp-content/uploads/2011/01/is-full.jpg 1019w" sizes="(max-width: 240px) 100vw, 240px" /></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>It may not be noticeable where the ListView-like component is, so there is the highlighted version:</p>
|
||||
<table cellpadding="8" align="center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="../../../wp-content/uploads/2011/01/stdl-highlight.jpg"><img class="size-medium wp-image-43 " title="stdl-full" src="../../../wp-content/uploads/2011/01/stdl-highlight-300x206.jpg" alt="Swift To-Do List" width="240" height="165" /></a></td>
|
||||
<td><a href="../../../wp-content/uploads/2011/01/is-highlight.jpg"><img class="size-medium wp-image-41 " title="is-full" src="../../../wp-content/uploads/2011/01/is-highlight-300x229.jpg" alt="ImagingShop" width="240" height="183" /></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>These parts look very different, as the applications have different purpose. One is a task management/sheduling software, and the second is a photo management/editing software.</p>
|
||||
<p>In the first case, we have to deal with specific requirements like <em>multi-column sorting</em>, <em>cell highlighting</em>, <em>item reordering</em> and of course <a href="../../../../quick-start-guide/better-listview/index.html">many, many more</a>…</p>
|
||||
<p>In the second case, photo application required display of <em>arbitrarily-sized thumbnails</em>, <em>custom tooltips</em> and <em>multi-line captions</em>.</p>
|
||||
<p>It was apparent, that the .NET ListView is not able to fullfill all of these requirements even if we bend and customize it to the limit. ListView is also a visual component of long history dating back to the earliest versions of Microsoft Windows. During its lifetime, it grabbed problematic stuff, that have to be kept for backward compatibility.</p>
|
||||
<p>And the .NET ListView is a wrapper around all this. It contains hacks and workarounds to make it work more properly. Even with all that, try to display a backround watermark image while retaining Vista visual style. Impossible.</p>
|
||||
<p>So we designed a control that lacks all the bugs and drawbacks of the .NET ListView while containing all the sweet features. It was ready to use for our needs.</p>
|
||||
<p>But it has some 40 K lines of code and aspiring to be itself a product. We decided to develop Better ListView as a commercialy available component at the very beginning of its development.</p>
|
||||
<p>We agreed on this kind of win-win-win strategy (for the end-user, for customer-developer, and for us) and hope all will benefit from maintaining a better Better ListView :-)</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/synergy-of-better-listview-and-our-applications/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:37:38 by W3 Total Cache
|
||||
-->
|
||||
228
public/blog/category/components/index.html
Normal file
228
public/blog/category/components/index.html
Normal file
@@ -0,0 +1,228 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
|
||||
<head profile="http://gmpg.org/xfn/11">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
|
||||
<meta name="blogcatalog" content="9BC9953358" />
|
||||
<title>Components « Owl's Blog on .NET development</title>
|
||||
|
||||
<link rel="stylesheet" href="../../wp-content/themes/componentowl/style.css" type="text/css" media="screen" />
|
||||
<link rel="pingback" href="../../xmlrpc.php.html" />
|
||||
|
||||
|
||||
<link rel='dns-prefetch' href='http://s.w.org/' />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Feed" href="../../feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Comments Feed" href="../../comments/feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Components Category Feed" href="feed/index.html" />
|
||||
<script type="text/javascript">
|
||||
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/www.componentowl.com\/blog\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.8"}};
|
||||
!function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55358,56760,9792,65039],[55358,56760,8203,9792,65039]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
|
||||
</script>
|
||||
<style type="text/css">
|
||||
img.wp-smiley,
|
||||
img.emoji {
|
||||
display: inline !important;
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
height: 1em !important;
|
||||
width: 1em !important;
|
||||
margin: 0 .07em !important;
|
||||
vertical-align: -0.1em !important;
|
||||
background: none !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
</style>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery.js%3Fver=1.12.4'></script>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery-migrate.min.js%3Fver=1.4.1'></script>
|
||||
<link rel='https://api.w.org/' href='../../wp-json/index.html' />
|
||||
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="../../xmlrpc.php%3Frsd" />
|
||||
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="../../wp-includes/wlwmanifest.xml" />
|
||||
<meta name="generator" content="WordPress 4.9.8" />
|
||||
<script type="text/javascript" src="../../../javascripts/plugins/jquery.validation.js"></script>
|
||||
<script type="text/javascript" src="../../../javascripts/dextronet.js"></script>
|
||||
<script type="text/javascript" src="../../wp-content/themes/componentowl/javascripts/theme.js"></script>
|
||||
<!--[if IE 6]>
|
||||
<style type="text/css">
|
||||
#d-menu .dropdown .outer { background-image: none; }
|
||||
#d-menu .dropdown .shadowbox { background-image: none; }
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body class="archive category category-components category-4">
|
||||
|
||||
<div class="d-page">
|
||||
<div class="d-placing">
|
||||
<div class="d-content-wrap">
|
||||
|
||||
<div class="d-main">
|
||||
|
||||
<h1 class="blog-name"><a href="../../../blog.html">Owl's Blog on .NET development</a></h1>
|
||||
|
||||
<div class="blog-description">Component Owl codes Better ListView control all night so you don't have to.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="pagetitle">Archive for the ‘Components’ Category</h2>
|
||||
|
||||
<ul style="line-height: 1.5em">
|
||||
|
||||
<li><a href="../../index.html%3Fp=927.html" rel="bookmark" title="Permanent Link to Activation issues and how to solve them">Activation issues and how to solve them</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=878.html" rel="bookmark" title="Permanent Link to Custom Scroll Bar Size in Better ListView">Custom Scroll Bar Size in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=850.html" rel="bookmark" title="Permanent Link to Binding Images in Better ListView">Binding Images in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=843.html" rel="bookmark" title="Permanent Link to Enabling Search Highlight in Better ListView">Enabling Search Highlight in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=831.html" rel="bookmark" title="Permanent Link to Custom label edit: How to rename file names without extension in Better ListView">Custom label edit: How to rename file names without extension in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=823.html" rel="bookmark" title="Permanent Link to Better Thumbnail Browser Component Released">Better Thumbnail Browser Component Released</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=796.html" rel="bookmark" title="Permanent Link to How to Store Better ListView Content in a String (User Request)">How to Store Better ListView Content in a String (User Request)</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=340.html" rel="bookmark" title="Permanent Link to File Explorer with Better ListView">File Explorer with Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=40.html" rel="bookmark" title="Permanent Link to Synergy of Better ListView and Our Applications">Synergy of Better ListView and Our Applications</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"></div>
|
||||
<div class="alignright"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-sidebar">
|
||||
|
||||
|
||||
<div class="dextronet-feeds">
|
||||
<ul class="links">
|
||||
<li><a href="../../feed/index.html" class="rss">Subscribe to our RSS</a></li>
|
||||
<li><a href="http://twitter.com/ComponentOwl" class="twitter">Follow us on twitter</a></li>
|
||||
<li><a href="http://facebook.com/ComponentOwl" class="facebook">Follow us on Facebook</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<form role="search" method="get" id="searchform-sidebar" action="../../../blog.html" >
|
||||
<div><label class="screen-reader-text" for="s-sidebar">Search for:</label>
|
||||
<input type="text" value="Search..." name="s" id="s-sidebar" class="search inline-label" />
|
||||
<input type="image" id="searchsubmit-sidebar" src="../../wp-content/themes/componentowl/images/search.gif" value="Search" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="sidebar" role="complementary">
|
||||
<ul>
|
||||
<li id="categories-3" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> <ul>
|
||||
<li class="cat-item cat-item-3"><a href="../announcements/index.html" >Announcements</a> (8)
|
||||
</li>
|
||||
<li class="cat-item cat-item-21"><a href="../better-listview/index.html" >Better ListView</a> (44)
|
||||
</li>
|
||||
<li class="cat-item cat-item-4 current-cat"><a href="index.html" >Components</a> (9)
|
||||
</li>
|
||||
<li class="cat-item cat-item-222"><a href="../programming/index.html" >Programming</a> (2)
|
||||
</li>
|
||||
<li class="cat-item cat-item-13"><a href="../tutorials/index.html" >Tutorials</a> (19)
|
||||
</li>
|
||||
</ul>
|
||||
</li><li id="archives-3" class="widget widget_archive"><h2 class="widgettitle">Archives</h2> <ul>
|
||||
<li><a href='../../2017/03/index.html'>March 2017</a></li>
|
||||
<li><a href='../../2017/02/index.html'>February 2017</a></li>
|
||||
<li><a href='../../2016/11/index.html'>November 2016</a></li>
|
||||
<li><a href='../../2014/08/index.html'>August 2014</a></li>
|
||||
<li><a href='../../2014/07/index.html'>July 2014</a></li>
|
||||
<li><a href='../../2014/04/index.html'>April 2014</a></li>
|
||||
<li><a href='../../2014/02/index.html'>February 2014</a></li>
|
||||
<li><a href='../../2013/03/index.html'>March 2013</a></li>
|
||||
<li><a href='../../2013/02/index.html'>February 2013</a></li>
|
||||
<li><a href='../../2013/01/index.html'>January 2013</a></li>
|
||||
<li><a href='../../2012/12/index.html'>December 2012</a></li>
|
||||
<li><a href='../../2012/09/index.html'>September 2012</a></li>
|
||||
<li><a href='../../2012/08/index.html'>August 2012</a></li>
|
||||
<li><a href='../../2012/04/index.html'>April 2012</a></li>
|
||||
<li><a href='../../2012/03/index.html'>March 2012</a></li>
|
||||
<li><a href='../../2012/02/index.html'>February 2012</a></li>
|
||||
<li><a href='../../2012/01/index.html'>January 2012</a></li>
|
||||
<li><a href='../../2011/12/index.html'>December 2011</a></li>
|
||||
<li><a href='../../2011/11/index.html'>November 2011</a></li>
|
||||
<li><a href='../../2011/10/index.html'>October 2011</a></li>
|
||||
<li><a href='../../2011/09/index.html'>September 2011</a></li>
|
||||
<li><a href='../../2011/08/index.html'>August 2011</a></li>
|
||||
<li><a href='../../2011/07/index.html'>July 2011</a></li>
|
||||
<li><a href='../../2011/06/index.html'>June 2011</a></li>
|
||||
<li><a href='../../2011/05/index.html'>May 2011</a></li>
|
||||
<li><a href='../../2011/03/index.html'>March 2011</a></li>
|
||||
<li><a href='../../2011/02/index.html'>February 2011</a></li>
|
||||
<li><a href='../../2011/01/index.html'>January 2011</a></li>
|
||||
</ul>
|
||||
</li><li id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widgettitle">Tags</h2><div class="tagcloud"><a href="../../tag/align/index.html" class="tag-cloud-link tag-link-256 tag-link-position-1" style="font-size: 8pt;" aria-label="align (2 items)">align</a>
|
||||
<a href="../../tag/better/index.html" class="tag-cloud-link tag-link-71 tag-link-position-2" style="font-size: 14.326923076923pt;" aria-label="better (8 items)">better</a>
|
||||
<a href="../../tag/better-listview-2/index.html" class="tag-cloud-link tag-link-31 tag-link-position-3" style="font-size: 22pt;" aria-label="better listview (32 items)">better listview</a>
|
||||
<a href="../../tag/bound/index.html" class="tag-cloud-link tag-link-85 tag-link-position-4" style="font-size: 8pt;" aria-label="bound (2 items)">bound</a>
|
||||
<a href="../../tag/child-items-in-listview/index.html" class="tag-cloud-link tag-link-57 tag-link-position-5" style="font-size: 8pt;" aria-label="child items in listview (2 items)">child items in listview</a>
|
||||
<a href="../../tag/column/index.html" class="tag-cloud-link tag-link-89 tag-link-position-6" style="font-size: 10.961538461538pt;" aria-label="column (4 items)">column</a>
|
||||
<a href="../../tag/coming-soon/index.html" class="tag-cloud-link tag-link-52 tag-link-position-7" style="font-size: 8pt;" aria-label="coming soon (2 items)">coming soon</a>
|
||||
<a href="../../tag/custom/index.html" class="tag-cloud-link tag-link-12 tag-link-position-8" style="font-size: 15pt;" aria-label="custom (9 items)">custom</a>
|
||||
<a href="../../tag/data/index.html" class="tag-cloud-link tag-link-84 tag-link-position-9" style="font-size: 8pt;" aria-label="data (2 items)">data</a>
|
||||
<a href="../../tag/databinding/index.html" class="tag-cloud-link tag-link-83 tag-link-position-10" style="font-size: 8pt;" aria-label="databinding (2 items)">databinding</a>
|
||||
<a href="../../tag/drawing/index.html" class="tag-cloud-link tag-link-161 tag-link-position-11" style="font-size: 10.961538461538pt;" aria-label="drawing (4 items)">drawing</a>
|
||||
<a href="../../tag/drawn/index.html" class="tag-cloud-link tag-link-270 tag-link-position-12" style="font-size: 9.6153846153846pt;" aria-label="drawn (3 items)">drawn</a>
|
||||
<a href="../../tag/explorer/index.html" class="tag-cloud-link tag-link-30 tag-link-position-13" style="font-size: 9.6153846153846pt;" aria-label="explorer (3 items)">explorer</a>
|
||||
<a href="../../tag/groups/index.html" class="tag-cloud-link tag-link-22 tag-link-position-14" style="font-size: 10.961538461538pt;" aria-label="groups (4 items)">groups</a>
|
||||
<a href="../../tag/header/index.html" class="tag-cloud-link tag-link-134 tag-link-position-15" style="font-size: 9.6153846153846pt;" aria-label="header (3 items)">header</a>
|
||||
<a href="../../tag/hide/index.html" class="tag-cloud-link tag-link-88 tag-link-position-16" style="font-size: 10.961538461538pt;" aria-label="hide (4 items)">hide</a>
|
||||
<a href="../../tag/hiding/index.html" class="tag-cloud-link tag-link-90 tag-link-position-17" style="font-size: 9.6153846153846pt;" aria-label="hiding (3 items)">hiding</a>
|
||||
<a href="../../tag/hierarchy/index.html" class="tag-cloud-link tag-link-24 tag-link-position-18" style="font-size: 8pt;" aria-label="hierarchy (2 items)">hierarchy</a>
|
||||
<a href="../../tag/hot/index.html" class="tag-cloud-link tag-link-106 tag-link-position-19" style="font-size: 9.6153846153846pt;" aria-label="hot (3 items)">hot</a>
|
||||
<a href="../../tag/image/index.html" class="tag-cloud-link tag-link-277 tag-link-position-20" style="font-size: 8pt;" aria-label="image (2 items)">image</a>
|
||||
<a href="../../tag/images/index.html" class="tag-cloud-link tag-link-7 tag-link-position-21" style="font-size: 9.6153846153846pt;" aria-label="images (3 items)">images</a>
|
||||
<a href="../../tag/item/index.html" class="tag-cloud-link tag-link-23 tag-link-position-22" style="font-size: 10.961538461538pt;" aria-label="item (4 items)">item</a>
|
||||
<a href="../../tag/item-hierarchy/index.html" class="tag-cloud-link tag-link-55 tag-link-position-23" style="font-size: 8pt;" aria-label="item hierarchy (2 items)">item hierarchy</a>
|
||||
<a href="../../tag/items/index.html" class="tag-cloud-link tag-link-107 tag-link-position-24" style="font-size: 17.423076923077pt;" aria-label="items (14 items)">items</a>
|
||||
<a href="../../tag/listview/index.html" class="tag-cloud-link tag-link-5 tag-link-position-25" style="font-size: 16.076923076923pt;" aria-label="listview (11 items)">listview</a>
|
||||
<a href="../../tag/load/index.html" class="tag-cloud-link tag-link-261 tag-link-position-26" style="font-size: 8pt;" aria-label="load (2 items)">load</a>
|
||||
<a href="../../tag/mouse/index.html" class="tag-cloud-link tag-link-41 tag-link-position-27" style="font-size: 8pt;" aria-label="mouse (2 items)">mouse</a>
|
||||
<a href="../../tag/multi-line/index.html" class="tag-cloud-link tag-link-82 tag-link-position-28" style="font-size: 8pt;" aria-label="multi-line (2 items)">multi-line</a>
|
||||
<a href="../../tag/multiline/index.html" class="tag-cloud-link tag-link-81 tag-link-position-29" style="font-size: 9.6153846153846pt;" aria-label="multiline (3 items)">multiline</a>
|
||||
<a href="../../tag/owner/index.html" class="tag-cloud-link tag-link-104 tag-link-position-30" style="font-size: 12.038461538462pt;" aria-label="owner (5 items)">owner</a>
|
||||
<a href="../../tag/ownerdrawn/index.html" class="tag-cloud-link tag-link-273 tag-link-position-31" style="font-size: 8pt;" aria-label="ownerdrawn (2 items)">ownerdrawn</a>
|
||||
<a href="../../tag/padding/index.html" class="tag-cloud-link tag-link-19 tag-link-position-32" style="font-size: 8pt;" aria-label="padding (2 items)">padding</a>
|
||||
<a href="../../tag/progress/index.html" class="tag-cloud-link tag-link-37 tag-link-position-33" style="font-size: 8pt;" aria-label="progress (2 items)">progress</a>
|
||||
<a href="../../tag/space/index.html" class="tag-cloud-link tag-link-240 tag-link-position-34" style="font-size: 9.6153846153846pt;" aria-label="space (3 items)">space</a>
|
||||
<a href="../../tag/spacing/index.html" class="tag-cloud-link tag-link-20 tag-link-position-35" style="font-size: 8pt;" aria-label="spacing (2 items)">spacing</a>
|
||||
<a href="../../tag/sub-item/index.html" class="tag-cloud-link tag-link-113 tag-link-position-36" style="font-size: 10.961538461538pt;" aria-label="sub-item (4 items)">sub-item</a>
|
||||
<a href="../../tag/sub-items/index.html" class="tag-cloud-link tag-link-265 tag-link-position-37" style="font-size: 8pt;" aria-label="sub-items (2 items)">sub-items</a>
|
||||
<a href="../../tag/subitem/index.html" class="tag-cloud-link tag-link-258 tag-link-position-38" style="font-size: 9.6153846153846pt;" aria-label="subitem (3 items)">subitem</a>
|
||||
<a href="../../tag/subitems/index.html" class="tag-cloud-link tag-link-266 tag-link-position-39" style="font-size: 9.6153846153846pt;" aria-label="subitems (3 items)">subitems</a>
|
||||
<a href="../../tag/thumbnails/index.html" class="tag-cloud-link tag-link-6 tag-link-position-40" style="font-size: 8pt;" aria-label="thumbnails (2 items)">thumbnails</a>
|
||||
<a href="../../tag/tree/index.html" class="tag-cloud-link tag-link-80 tag-link-position-41" style="font-size: 8pt;" aria-label="tree (2 items)">tree</a>
|
||||
<a href="../../tag/update/index.html" class="tag-cloud-link tag-link-36 tag-link-position-42" style="font-size: 8pt;" aria-label="update (2 items)">update</a>
|
||||
<a href="../../tag/whats-new/index.html" class="tag-cloud-link tag-link-32 tag-link-position-43" style="font-size: 8pt;" aria-label="what's new (2 items)">what's new</a>
|
||||
<a href="../../tag/working-on/index.html" class="tag-cloud-link tag-link-38 tag-link-position-44" style="font-size: 8pt;" aria-label="working on (2 items)">working on</a>
|
||||
<a href="../../tag/xp/index.html" class="tag-cloud-link tag-link-29 tag-link-position-45" style="font-size: 8pt;" aria-label="xp (2 items)">xp</a></div>
|
||||
</li> </ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type='text/javascript' src='../../wp-includes/js/wp-embed.min.js%3Fver=4.9.8'></script>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:37:00 by W3 Total Cache
|
||||
-->
|
||||
178
public/blog/category/programming/feed/index.html
Normal file
178
public/blog/category/programming/feed/index.html
Normal file
@@ -0,0 +1,178 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
|
||||
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/"
|
||||
>
|
||||
|
||||
<channel>
|
||||
<title>Programming – Owl's Blog on .NET development</title>
|
||||
<atom:link href="http://www.componentowl.com/blog/category/programming/feed/" rel="self" type="application/rss+xml" />
|
||||
<link>http://www.componentowl.com/blog</link>
|
||||
<description>Component Owl codes Better ListView control all night so you don't have to.</description>
|
||||
<lastBuildDate>Tue, 04 Sep 2018 13:10:05 +0000</lastBuildDate>
|
||||
<language>en-US</language>
|
||||
<sy:updatePeriod>hourly</sy:updatePeriod>
|
||||
<sy:updateFrequency>1</sy:updateFrequency>
|
||||
<generator>https://wordpress.org/?v=4.9.8</generator>
|
||||
<item>
|
||||
<title>BLV and Internet Explorer</title>
|
||||
<link>http://www.componentowl.com/blog/blv-and-internet-explorer/</link>
|
||||
<comments>http://www.componentowl.com/blog/blv-and-internet-explorer/#respond</comments>
|
||||
<pubDate>Sun, 13 Nov 2016 22:37:47 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Programming]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=914</guid>
|
||||
<description><![CDATA[As you all know we are constantly working on improving BetterListView, but once in a while you might encounter a problem which has not found its way to our documentation yet.
|
||||
|
||||
Today, our blog post covers an interesting case when using Internet Explorer.]]></description>
|
||||
<content:encoded><![CDATA[<p>As you all know we are constantly working on improving BetterListView, but once in a while you might encounter a problem which has not found its way to our documentation yet.</p>
|
||||
<p>Today, our blog post covers an interesting case when using Internet Explorer.<br />
|
||||
When instantiating an ActiveX control written as a .NET assembly exposed via Interop you might get the following message:</p>
|
||||
<p><code>System.IO.FileNotFoundException("Could not load file or assembly 'BetterListView, Version=3.8.2.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxx' or one of its dependencies. The system cannot find the file specified.")</code></p>
|
||||
<p>The solution to this problem is a fairly simple one, quoting from an <a href="https://msdn.microsoft.com/en-us/library/tzat5yw6">MSDN article</a>:<br />
|
||||
“… you can install it in the global assembly cache so that it can be activated from any COM client. If the assembly is only going to be activated by a single application, you can place it in that application’s directory.”</p>
|
||||
<p>Concluding from this short excerpt, you are basically left you with two options:<br />
|
||||
1) You may register BetterListView in GAC if it is to be shared. But you should be careful with GAC because it allows holding multiple versions of the same assembly. You can make the installer remove any older versions from GAC during installation and add/keep just the newest one.<br />
|
||||
2) You can put your .net assembly with all third-party DLLs in one directory during installation if it is to be private.</p>
|
||||
<p>We recommend the second solution as we reckon it to be the safer one.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/blv-and-internet-explorer/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Are You a Zen Coder or Distraction-Junkie?</title>
|
||||
<link>http://www.componentowl.com/blog/zen-coder-vs-distraction-junkie/</link>
|
||||
<comments>http://www.componentowl.com/blog/zen-coder-vs-distraction-junkie/#comments</comments>
|
||||
<pubDate>Sun, 12 Feb 2012 07:04:41 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Brian Galura]]></dc:creator>
|
||||
<category><![CDATA[Programming]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[clean focus]]></category>
|
||||
<category><![CDATA[coder productivity]]></category>
|
||||
<category><![CDATA[computer work]]></category>
|
||||
<category><![CDATA[distraction junkie]]></category>
|
||||
<category><![CDATA[distractions]]></category>
|
||||
<category><![CDATA[efficient work on computer]]></category>
|
||||
<category><![CDATA[focus]]></category>
|
||||
<category><![CDATA[internet addiction]]></category>
|
||||
<category><![CDATA[mental work]]></category>
|
||||
<category><![CDATA[productivity]]></category>
|
||||
<category><![CDATA[programming productivity]]></category>
|
||||
<category><![CDATA[relaxing when working on computer]]></category>
|
||||
<category><![CDATA[work focus]]></category>
|
||||
<category><![CDATA[zen]]></category>
|
||||
<category><![CDATA[zen coder]]></category>
|
||||
<category><![CDATA[zen habits]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=664</guid>
|
||||
<description><![CDATA[What you do when compiling can ruin your life. And not just when compiling. What makes a Zen Coder?]]></description>
|
||||
<content:encoded><![CDATA[<p><strong>What you do when compiling can ruin your life.</strong> And not just when compiling, but when waiting for any short computer operation to finish.</p>
|
||||
<p>That time is ridiculously tiny compared to the rest of your workday, yet it can have a huge impact on your productivity and well-being overall. Yes, that’s a big fat claim.</p>
|
||||
<p>And by the way, this article is not just about coders or programmers. It’s about <em>any</em> smart people working with computers. And there will be pictures! Let’s rock and roll –</p>
|
||||
<h1>Why am I writing this</h1>
|
||||
<p>I recently started implementing certain time management techniques into my work style to boost my productivity, reduce stress, and help my body and brain rest. I basically wanted to work in uninterruptable 100% focused 60-120 minutes blocks of time, followed by a 20-30 minute breaks.</p>
|
||||
<p>However, I almost immediately run into a big problem: When I was compiling or deploying something, I automatically opened one or more of the following: Email client, Facebook, news reader, news sites. That’s a bad habit. It’s hard to break. It ruins my goal of clean focus.</p>
|
||||
<p>So I decided to do some research. There was a discussion on “<a href="http://productivity.stackexchange.com/questions/970/what-to-do-while-compiling" target="_blank" rel="nofollow">What to do while compiling?</a>” on StackExchange. The most up-voted answers were of the “reduce the compilation time” kind. However, these answers don’t solve the more general problem: There will always be waiting times while working on the computer.</p>
|
||||
<p>Other than that, the people in the discussion were mostly suggesting what they usually do (such as checking email or news) – which is a horrible idea. One good advice was that “Multi-tasking is bad”. I agree with that. But overall? Not. Good. Enough. The answers were disappointing. So, in this article, I am going to explore this issue deeply and present you with the optimal approach.</p>
|
||||
<h1>Two kinds of coders</h1>
|
||||
<p>There are two extreme archetypes of coders – The “zen coder”, and the “distraction junkie coder”. Both are extreme, so both should be rare on the bell curve of distribution, right?</p>
|
||||
<p>Wrong. Although the “Distraction junkie coder” is, in fact, extreme, he is unbelievably prevalent.</p>
|
||||
<p>A picture is worth 1000 words, so I am going to show you, with pictures, what is happening on the mental desktops of both of these kinds of coders.</p>
|
||||
<h1>The zen coder</h1>
|
||||
<p>What does zen coder do?</p>
|
||||
<p>He codes. That’s the only thing he does, and that tells it all. Perhaps the more important question is what he does not do: He does not succumb to distractions. Clean focus. Clean cuts. Clean coding. 60-120 minutes of pure coding, then a 20-30 minute break, which is usually off the computer. Then he codes again. (The minutes are just an example. He can use a different pattern – but he is always balanced and betting on the long-term productivity.)</p>
|
||||
<p>His mind is like calm fluid water with a steady flow. It is not like frozen water shattered to 1000 constantly shaking pieces.</p>
|
||||
<p>This is how the mental desktop of zen coder looks like:</p>
|
||||
<p><img src="../../../wp-content/uploads/2012/02/zen-coder.png" alt="Zen coder's mental desktop"></p>
|
||||
<h1>The distraction junkie coder</h1>
|
||||
<p>Even if your mental desktop looks like the one of a zen coder, just a few minutes after you open Facebook and check your email – e.g. when compiling, it will look like this:</p>
|
||||
<p><img src="../../../wp-content/uploads/2012/02/distraction-junkie-coder.png.png" alt="Distraction junkie coder mental desktop"></p>
|
||||
<p>And that is, ladies and gentlemen, after just merely checking your email and opening Facebook! If you also have a bunch of real-time notifications, IMs, and check your RSS and twitter, the above will look like a scheme of a meditating monk’s brain compared to the havoc you will break.</p>
|
||||
<p>You will probably never fully recover from that. Not on that particular day, anyway. Even if you minimize all this crap on your mental desktop to your mental taskbar, it will remain there, tempt you forever, and eat up your mental resources. And boy, the time will fly by, and you will wonder where it went.</p>
|
||||
<p>Oh, and by the way, if you are distraction junkie, then you <strong>must</strong> check out <strong><a href="http://www.componentowl.com/comics/26">our web comics for developers!</a></strong> Don’t even return to finish reading this article. And don’t forget to subscribe to the comics RSS! And read all the strips! Then send it to your buddy, and start chatting! The distraction-rabbit holes are not that deep, really!</p>
|
||||
<h1>The difference between zen coder and distraction junkie coder</h1>
|
||||
<p>Zen coder prefers long-term happiness and productivity. He is capable of focusing deeply. He trains focus.</p>
|
||||
<p>Distraction junkie coder prefers instant gratification for the price of not reaching his full potential and hurting himself both physically and mentally in the long run. He is too lazy to focus.</p>
|
||||
<p>To fully grasp this, we first need to understand how our brains work.</p>
|
||||
<h1>How our brains work</h1>
|
||||
<p>The truth is that we don’t really know, yet. But, based on our current understanding, there are some useful analogies that psychologists have been putting to a good use for some time, and that can help us grasp some of the complexities.</p>
|
||||
<h2>The computer analogy</h2>
|
||||
<p>Your brain is a computer. Sure, it is infinitely more complex than a PC, but the computer metaphor allows us to describe many processes that are going on in the brain. There is something like HDD, there is something like RAM, CPU, there are processes and threads, and it takes certain amount of time to access information and to calculate things.</p>
|
||||
<p>It is obvious that our brain has only a certain capacity to focus at any particular moment. You can focus on 1 thing well, or on 3 things badly, but you can’t do both. Even switching from one task to another carries a cognitive cost, especially if the tasks are in different contexts.</p>
|
||||
<p>Once you bring something to your awareness, it takes time to <em>fully</em> dispose of it and its associated resources and to purge it from your mental RAM and background processes. It can even take hours or days. Things recently brought to your awareness constantly re-appear at random moments. Even if you do not notice them floating in your mind, they are there – and they take up resources, and reduce your ability to focus.</p>
|
||||
<h2>The chest of drawers analogy</h2>
|
||||
<p>Another useful metaphor is a chest of drawers. Your brain stores stuff in drawers. Each drawer is a cloud of data associated and linked together based on certain contexts and concepts. At any particular time, some of the drawers are open, and some closed. The open drawers represent your current mental landscape, the stuff that is easily accessible.</p>
|
||||
<p><strong>The big problem is that it takes time to close mental drawers, but opening them is instant.</strong></p>
|
||||
<p>So, when you are working, and then switch to some news site, it can instantly open a bunch of drawers. When you return to work, these drawers will remain open. The only benefit is it can help you with creativity and brainstorming – but unnecessarily opened drawers come at a cost. They reduce your left-brain raw mental power and ability to focus.</p>
|
||||
<h1>What to do while compiling?</h1>
|
||||
<p>What you do when waiting for some computer operation to execute can determine if you are a zen coder, or distraction junkie coder. </p>
|
||||
<p>The main idea here is to:</p>
|
||||
<ol>
|
||||
<li>Not lose focus, and</li>
|
||||
<li>Take a micro break.</li>
|
||||
</ol>
|
||||
<p>Not losing focus is not that hard – all you have to do is to switch your brain off, or keep thinking about your code. However, switching off is better. It’s a micro-meditation, and it also serves our goal of taking a micro-break.</p>
|
||||
<p>Why meditation? Well, your brain is crunching code all day, so why not give it a rest? Plus it’s scientifically proven that meditation leads to permanent increase in levels happiness. Just imagine the long term benefits of this seemingly trivial habit of meditating for 30-60 seconds couple of times per day.</p>
|
||||
<p>Now, what to do on your micro-break? Do any of the following, combine as you wish. You can also do them all, in this order, depending (or not) on how long is the operation taking.</p>
|
||||
<ol>
|
||||
<li>Get up</li>
|
||||
<li>Look into distance</li>
|
||||
<li>Put your hands behind your head and lean back on your chair</li>
|
||||
<li>Stretch your legs, then raise your hands as high as possible</li>
|
||||
<li>Close your eyes</li>
|
||||
<li>Gently massage your eyes</li>
|
||||
<li>Slowly turn your head to the right, left, up and down as far as possible</li>
|
||||
<li>Close your eyes and breathe</li>
|
||||
<li>Go get a glass of water (Be careful not to get distracted by your co-workers on your way.)</li>
|
||||
</ol>
|
||||
<p>You can do also anything else that engages primarily your body and not mind – isometrics exercise, juggling, sword-fighting ;-).</p>
|
||||
<p>And by the way – if your boss gives you hard time about any of this, then refer him to this article. It is far better for you to quickly rejuvenate yourself and maintain focus than to appear working and get distracted, lose focus and become tired sooner. </p>
|
||||
<p>Stretching can be very beneficial. My physiotherapist discovered a lot of tension in my shoulders on my last visit. She told me that it’s there probably because I have my hands bent all the time when siting at the computer, so the muscles shorten and work uneconomically. The best thing I can do? Lift and move my hands, try to reach as high as possible. That’s now one of the things I do when compiling or waiting for a computer operation to execute.</p>
|
||||
<p>You’ve probably heard that it is a good idea to stretch and take a short break regularly when working on the computer. The problem is the implementation – even if you set a timer, what if you are in a middle of a difficult problem when it goes off? It’s just seems impossible to implement. However, if you take the micro-break while compiling, it works great and you can even make a habit out of it, so it gets “automated”! The compilation now becomes your reminder to stretch. Incredibly powerful stuff.</p>
|
||||
<h1>The things you shouldn’t do when compiling</h1>
|
||||
<p>I really want to hammer my point home, so just to make things absolutely clear, here is a list of what you should NOT do when compiling. Think of it this way: These things will not just ruin your focus, but you will deprive your mind and body of the micro-break.</p>
|
||||
<ol>
|
||||
<li>Check your RSS</li>
|
||||
<li>Check news (<em>any</em> news)</li>
|
||||
<li>Check email</li>
|
||||
<li>Check social media (Facebook, twitter, G+, LinkedIn, reddit – you name it)</li>
|
||||
<li>Watch videos</li>
|
||||
</ol>
|
||||
<p>Doing the following 2 things is better than all of the above, but it is still not optimal:</p>
|
||||
<ol>
|
||||
<li>Chat with a co-worker</li>
|
||||
<li>Read a physical book</li>
|
||||
</ol>
|
||||
<h1>Clean Focus and Clean Cuts</h1>
|
||||
<p>I will close this article with what I think is the ideal approach to daily work-flow – the zen coder way.</p>
|
||||
<p>The key to true productivity and efficiency is to focus 100% on the one thing you are doing at the moment, and then to completely switch and do something else. There shouldn’t be any blurry transitions from one thing to the next.</p>
|
||||
<p>Divide your time into 60 – 120 minutes blocks of work. Focus 100% percent in these blocks of time. Then take a 20-30 minute break and do something else entirely. You can check your email and social media during the break, sure, but a brisk walk or a short nap and healthy snack will do you more good. After the break is over, check what’s next in your task management software (e.g. I use my own <strong><a href="http://www.dextronet.com/swift-to-do-list-software">Swift To-Do List</a></strong>), and do another block of focused work. It is somewhat similar to Pomodoro technique, only on a larger scale.</p>
|
||||
<p>The breaks are not optional. Don’t even think about skipping them. Your body needs them. Take the breaks even if you do what you love – in such a case, you will be motivated to accomplish more in the next time block.</p>
|
||||
<p><strong>Your work-flow should look something like this:</strong></p>
|
||||
<p>(Task 1 – Task 2) – Break – (Task 2 – Task 3 – Task 4) – Break – (Another 60-120 minute block of tasks) – Break…</p>
|
||||
<p><strong>And not something completely chaotic, random and sad, like this:</strong></p>
|
||||
<p>Task 1 – Email – Task 1 – Facebook – Task 1 – Task 2 – Minibreak – Facebook – Task 2 – Email – reddit – Task 3 – Email – Break – Task 2 – Email – Task 3 – twitter – Hacker News – twitter – Task 1 – Task 3 – Break – Task 4</p>
|
||||
<p>If your workflow is sub-optimal like that, you will neither fully relax nor accomplish what you could. This is inferior on every level. It is not just a waste of your potential and time, but often also completely unnecessary wreckage of your body in the long run.</p>
|
||||
<p>I won’t lie to you. Focusing is really hard. It’s hard, because when you are not doing it, you are basically training the opposite. Habits and ingrained routines are inherently hard to change. </p>
|
||||
<p>The good news is you can train. You <em>can</em> learn to focus. It’s a learnable skill for everyone, and incredibly well worth the effort.</p>
|
||||
<p>– By <strong><a href="https://plus.google.com/108094026317986529064/" rel="author" target="_blank">Jiri Novotny+</a></strong>, the obsessed author of <strong><a href="http://www.dextronet.com">task management software for Windows</a></strong>. He is posting this guest article here on ComponentOwl.com, because his Swift To-Do List uses .NET <strong><a href="http://www.componentowl.com/better-listview">Better ListView</a></strong> from Component Owl as its core component.</p>
|
||||
<p>PS: Know anyone who is checking email 50 times a day, and has 12 different notifications jumping in his face all the time? Send him this article. He will thank you later.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/zen-coder-vs-distraction-junkie/feed/</wfw:commentRss>
|
||||
<slash:comments>55</slash:comments>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:38:24 by W3 Total Cache
|
||||
-->
|
||||
214
public/blog/category/programming/index.html
Normal file
214
public/blog/category/programming/index.html
Normal file
@@ -0,0 +1,214 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
|
||||
<head profile="http://gmpg.org/xfn/11">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
|
||||
<meta name="blogcatalog" content="9BC9953358" />
|
||||
<title>Programming « Owl's Blog on .NET development</title>
|
||||
|
||||
<link rel="stylesheet" href="../../wp-content/themes/componentowl/style.css" type="text/css" media="screen" />
|
||||
<link rel="pingback" href="../../xmlrpc.php.html" />
|
||||
|
||||
|
||||
<link rel='dns-prefetch' href='http://s.w.org/' />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Feed" href="../../feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Comments Feed" href="../../comments/feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Programming Category Feed" href="feed/index.html" />
|
||||
<script type="text/javascript">
|
||||
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/www.componentowl.com\/blog\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.8"}};
|
||||
!function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55358,56760,9792,65039],[55358,56760,8203,9792,65039]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
|
||||
</script>
|
||||
<style type="text/css">
|
||||
img.wp-smiley,
|
||||
img.emoji {
|
||||
display: inline !important;
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
height: 1em !important;
|
||||
width: 1em !important;
|
||||
margin: 0 .07em !important;
|
||||
vertical-align: -0.1em !important;
|
||||
background: none !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
</style>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery.js%3Fver=1.12.4'></script>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery-migrate.min.js%3Fver=1.4.1'></script>
|
||||
<link rel='https://api.w.org/' href='../../wp-json/index.html' />
|
||||
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="../../xmlrpc.php%3Frsd" />
|
||||
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="../../wp-includes/wlwmanifest.xml" />
|
||||
<meta name="generator" content="WordPress 4.9.8" />
|
||||
<script type="text/javascript" src="../../../javascripts/plugins/jquery.validation.js"></script>
|
||||
<script type="text/javascript" src="../../../javascripts/dextronet.js"></script>
|
||||
<script type="text/javascript" src="../../wp-content/themes/componentowl/javascripts/theme.js"></script>
|
||||
<!--[if IE 6]>
|
||||
<style type="text/css">
|
||||
#d-menu .dropdown .outer { background-image: none; }
|
||||
#d-menu .dropdown .shadowbox { background-image: none; }
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body class="archive category category-programming category-222">
|
||||
|
||||
<div class="d-page">
|
||||
<div class="d-placing">
|
||||
<div class="d-content-wrap">
|
||||
|
||||
<div class="d-main">
|
||||
|
||||
<h1 class="blog-name"><a href="../../../blog.html">Owl's Blog on .NET development</a></h1>
|
||||
|
||||
<div class="blog-description">Component Owl codes Better ListView control all night so you don't have to.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="pagetitle">Archive for the ‘Programming’ Category</h2>
|
||||
|
||||
<ul style="line-height: 1.5em">
|
||||
|
||||
<li><a href="../../index.html%3Fp=914.html" rel="bookmark" title="Permanent Link to BLV and Internet Explorer">BLV and Internet Explorer</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=664.html" rel="bookmark" title="Permanent Link to Are You a Zen Coder or Distraction-Junkie?">Are You a Zen Coder or Distraction-Junkie?</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"></div>
|
||||
<div class="alignright"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-sidebar">
|
||||
|
||||
|
||||
<div class="dextronet-feeds">
|
||||
<ul class="links">
|
||||
<li><a href="../../feed/index.html" class="rss">Subscribe to our RSS</a></li>
|
||||
<li><a href="http://twitter.com/ComponentOwl" class="twitter">Follow us on twitter</a></li>
|
||||
<li><a href="http://facebook.com/ComponentOwl" class="facebook">Follow us on Facebook</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<form role="search" method="get" id="searchform-sidebar" action="../../../blog.html" >
|
||||
<div><label class="screen-reader-text" for="s-sidebar">Search for:</label>
|
||||
<input type="text" value="Search..." name="s" id="s-sidebar" class="search inline-label" />
|
||||
<input type="image" id="searchsubmit-sidebar" src="../../wp-content/themes/componentowl/images/search.gif" value="Search" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="sidebar" role="complementary">
|
||||
<ul>
|
||||
<li id="categories-3" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> <ul>
|
||||
<li class="cat-item cat-item-3"><a href="../announcements/index.html" >Announcements</a> (8)
|
||||
</li>
|
||||
<li class="cat-item cat-item-21"><a href="../better-listview/index.html" >Better ListView</a> (44)
|
||||
</li>
|
||||
<li class="cat-item cat-item-4"><a href="../components/index.html" >Components</a> (9)
|
||||
</li>
|
||||
<li class="cat-item cat-item-222 current-cat"><a href="index.html" >Programming</a> (2)
|
||||
</li>
|
||||
<li class="cat-item cat-item-13"><a href="../tutorials/index.html" >Tutorials</a> (19)
|
||||
</li>
|
||||
</ul>
|
||||
</li><li id="archives-3" class="widget widget_archive"><h2 class="widgettitle">Archives</h2> <ul>
|
||||
<li><a href='../../2017/03/index.html'>March 2017</a></li>
|
||||
<li><a href='../../2017/02/index.html'>February 2017</a></li>
|
||||
<li><a href='../../2016/11/index.html'>November 2016</a></li>
|
||||
<li><a href='../../2014/08/index.html'>August 2014</a></li>
|
||||
<li><a href='../../2014/07/index.html'>July 2014</a></li>
|
||||
<li><a href='../../2014/04/index.html'>April 2014</a></li>
|
||||
<li><a href='../../2014/02/index.html'>February 2014</a></li>
|
||||
<li><a href='../../2013/03/index.html'>March 2013</a></li>
|
||||
<li><a href='../../2013/02/index.html'>February 2013</a></li>
|
||||
<li><a href='../../2013/01/index.html'>January 2013</a></li>
|
||||
<li><a href='../../2012/12/index.html'>December 2012</a></li>
|
||||
<li><a href='../../2012/09/index.html'>September 2012</a></li>
|
||||
<li><a href='../../2012/08/index.html'>August 2012</a></li>
|
||||
<li><a href='../../2012/04/index.html'>April 2012</a></li>
|
||||
<li><a href='../../2012/03/index.html'>March 2012</a></li>
|
||||
<li><a href='../../2012/02/index.html'>February 2012</a></li>
|
||||
<li><a href='../../2012/01/index.html'>January 2012</a></li>
|
||||
<li><a href='../../2011/12/index.html'>December 2011</a></li>
|
||||
<li><a href='../../2011/11/index.html'>November 2011</a></li>
|
||||
<li><a href='../../2011/10/index.html'>October 2011</a></li>
|
||||
<li><a href='../../2011/09/index.html'>September 2011</a></li>
|
||||
<li><a href='../../2011/08/index.html'>August 2011</a></li>
|
||||
<li><a href='../../2011/07/index.html'>July 2011</a></li>
|
||||
<li><a href='../../2011/06/index.html'>June 2011</a></li>
|
||||
<li><a href='../../2011/05/index.html'>May 2011</a></li>
|
||||
<li><a href='../../2011/03/index.html'>March 2011</a></li>
|
||||
<li><a href='../../2011/02/index.html'>February 2011</a></li>
|
||||
<li><a href='../../2011/01/index.html'>January 2011</a></li>
|
||||
</ul>
|
||||
</li><li id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widgettitle">Tags</h2><div class="tagcloud"><a href="../../tag/align/index.html" class="tag-cloud-link tag-link-256 tag-link-position-1" style="font-size: 8pt;" aria-label="align (2 items)">align</a>
|
||||
<a href="../../tag/better/index.html" class="tag-cloud-link tag-link-71 tag-link-position-2" style="font-size: 14.326923076923pt;" aria-label="better (8 items)">better</a>
|
||||
<a href="../../tag/better-listview-2/index.html" class="tag-cloud-link tag-link-31 tag-link-position-3" style="font-size: 22pt;" aria-label="better listview (32 items)">better listview</a>
|
||||
<a href="../../tag/bound/index.html" class="tag-cloud-link tag-link-85 tag-link-position-4" style="font-size: 8pt;" aria-label="bound (2 items)">bound</a>
|
||||
<a href="../../tag/child-items-in-listview/index.html" class="tag-cloud-link tag-link-57 tag-link-position-5" style="font-size: 8pt;" aria-label="child items in listview (2 items)">child items in listview</a>
|
||||
<a href="../../tag/column/index.html" class="tag-cloud-link tag-link-89 tag-link-position-6" style="font-size: 10.961538461538pt;" aria-label="column (4 items)">column</a>
|
||||
<a href="../../tag/coming-soon/index.html" class="tag-cloud-link tag-link-52 tag-link-position-7" style="font-size: 8pt;" aria-label="coming soon (2 items)">coming soon</a>
|
||||
<a href="../../tag/custom/index.html" class="tag-cloud-link tag-link-12 tag-link-position-8" style="font-size: 15pt;" aria-label="custom (9 items)">custom</a>
|
||||
<a href="../../tag/data/index.html" class="tag-cloud-link tag-link-84 tag-link-position-9" style="font-size: 8pt;" aria-label="data (2 items)">data</a>
|
||||
<a href="../../tag/databinding/index.html" class="tag-cloud-link tag-link-83 tag-link-position-10" style="font-size: 8pt;" aria-label="databinding (2 items)">databinding</a>
|
||||
<a href="../../tag/drawing/index.html" class="tag-cloud-link tag-link-161 tag-link-position-11" style="font-size: 10.961538461538pt;" aria-label="drawing (4 items)">drawing</a>
|
||||
<a href="../../tag/drawn/index.html" class="tag-cloud-link tag-link-270 tag-link-position-12" style="font-size: 9.6153846153846pt;" aria-label="drawn (3 items)">drawn</a>
|
||||
<a href="../../tag/explorer/index.html" class="tag-cloud-link tag-link-30 tag-link-position-13" style="font-size: 9.6153846153846pt;" aria-label="explorer (3 items)">explorer</a>
|
||||
<a href="../../tag/groups/index.html" class="tag-cloud-link tag-link-22 tag-link-position-14" style="font-size: 10.961538461538pt;" aria-label="groups (4 items)">groups</a>
|
||||
<a href="../../tag/header/index.html" class="tag-cloud-link tag-link-134 tag-link-position-15" style="font-size: 9.6153846153846pt;" aria-label="header (3 items)">header</a>
|
||||
<a href="../../tag/hide/index.html" class="tag-cloud-link tag-link-88 tag-link-position-16" style="font-size: 10.961538461538pt;" aria-label="hide (4 items)">hide</a>
|
||||
<a href="../../tag/hiding/index.html" class="tag-cloud-link tag-link-90 tag-link-position-17" style="font-size: 9.6153846153846pt;" aria-label="hiding (3 items)">hiding</a>
|
||||
<a href="../../tag/hierarchy/index.html" class="tag-cloud-link tag-link-24 tag-link-position-18" style="font-size: 8pt;" aria-label="hierarchy (2 items)">hierarchy</a>
|
||||
<a href="../../tag/hot/index.html" class="tag-cloud-link tag-link-106 tag-link-position-19" style="font-size: 9.6153846153846pt;" aria-label="hot (3 items)">hot</a>
|
||||
<a href="../../tag/image/index.html" class="tag-cloud-link tag-link-277 tag-link-position-20" style="font-size: 8pt;" aria-label="image (2 items)">image</a>
|
||||
<a href="../../tag/images/index.html" class="tag-cloud-link tag-link-7 tag-link-position-21" style="font-size: 9.6153846153846pt;" aria-label="images (3 items)">images</a>
|
||||
<a href="../../tag/item/index.html" class="tag-cloud-link tag-link-23 tag-link-position-22" style="font-size: 10.961538461538pt;" aria-label="item (4 items)">item</a>
|
||||
<a href="../../tag/item-hierarchy/index.html" class="tag-cloud-link tag-link-55 tag-link-position-23" style="font-size: 8pt;" aria-label="item hierarchy (2 items)">item hierarchy</a>
|
||||
<a href="../../tag/items/index.html" class="tag-cloud-link tag-link-107 tag-link-position-24" style="font-size: 17.423076923077pt;" aria-label="items (14 items)">items</a>
|
||||
<a href="../../tag/listview/index.html" class="tag-cloud-link tag-link-5 tag-link-position-25" style="font-size: 16.076923076923pt;" aria-label="listview (11 items)">listview</a>
|
||||
<a href="../../tag/load/index.html" class="tag-cloud-link tag-link-261 tag-link-position-26" style="font-size: 8pt;" aria-label="load (2 items)">load</a>
|
||||
<a href="../../tag/mouse/index.html" class="tag-cloud-link tag-link-41 tag-link-position-27" style="font-size: 8pt;" aria-label="mouse (2 items)">mouse</a>
|
||||
<a href="../../tag/multi-line/index.html" class="tag-cloud-link tag-link-82 tag-link-position-28" style="font-size: 8pt;" aria-label="multi-line (2 items)">multi-line</a>
|
||||
<a href="../../tag/multiline/index.html" class="tag-cloud-link tag-link-81 tag-link-position-29" style="font-size: 9.6153846153846pt;" aria-label="multiline (3 items)">multiline</a>
|
||||
<a href="../../tag/owner/index.html" class="tag-cloud-link tag-link-104 tag-link-position-30" style="font-size: 12.038461538462pt;" aria-label="owner (5 items)">owner</a>
|
||||
<a href="../../tag/ownerdrawn/index.html" class="tag-cloud-link tag-link-273 tag-link-position-31" style="font-size: 8pt;" aria-label="ownerdrawn (2 items)">ownerdrawn</a>
|
||||
<a href="../../tag/padding/index.html" class="tag-cloud-link tag-link-19 tag-link-position-32" style="font-size: 8pt;" aria-label="padding (2 items)">padding</a>
|
||||
<a href="../../tag/progress/index.html" class="tag-cloud-link tag-link-37 tag-link-position-33" style="font-size: 8pt;" aria-label="progress (2 items)">progress</a>
|
||||
<a href="../../tag/space/index.html" class="tag-cloud-link tag-link-240 tag-link-position-34" style="font-size: 9.6153846153846pt;" aria-label="space (3 items)">space</a>
|
||||
<a href="../../tag/spacing/index.html" class="tag-cloud-link tag-link-20 tag-link-position-35" style="font-size: 8pt;" aria-label="spacing (2 items)">spacing</a>
|
||||
<a href="../../tag/sub-item/index.html" class="tag-cloud-link tag-link-113 tag-link-position-36" style="font-size: 10.961538461538pt;" aria-label="sub-item (4 items)">sub-item</a>
|
||||
<a href="../../tag/sub-items/index.html" class="tag-cloud-link tag-link-265 tag-link-position-37" style="font-size: 8pt;" aria-label="sub-items (2 items)">sub-items</a>
|
||||
<a href="../../tag/subitem/index.html" class="tag-cloud-link tag-link-258 tag-link-position-38" style="font-size: 9.6153846153846pt;" aria-label="subitem (3 items)">subitem</a>
|
||||
<a href="../../tag/subitems/index.html" class="tag-cloud-link tag-link-266 tag-link-position-39" style="font-size: 9.6153846153846pt;" aria-label="subitems (3 items)">subitems</a>
|
||||
<a href="../../tag/thumbnails/index.html" class="tag-cloud-link tag-link-6 tag-link-position-40" style="font-size: 8pt;" aria-label="thumbnails (2 items)">thumbnails</a>
|
||||
<a href="../../tag/tree/index.html" class="tag-cloud-link tag-link-80 tag-link-position-41" style="font-size: 8pt;" aria-label="tree (2 items)">tree</a>
|
||||
<a href="../../tag/update/index.html" class="tag-cloud-link tag-link-36 tag-link-position-42" style="font-size: 8pt;" aria-label="update (2 items)">update</a>
|
||||
<a href="../../tag/whats-new/index.html" class="tag-cloud-link tag-link-32 tag-link-position-43" style="font-size: 8pt;" aria-label="what's new (2 items)">what's new</a>
|
||||
<a href="../../tag/working-on/index.html" class="tag-cloud-link tag-link-38 tag-link-position-44" style="font-size: 8pt;" aria-label="working on (2 items)">working on</a>
|
||||
<a href="../../tag/xp/index.html" class="tag-cloud-link tag-link-29 tag-link-position-45" style="font-size: 8pt;" aria-label="xp (2 items)">xp</a></div>
|
||||
</li> </ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type='text/javascript' src='../../wp-includes/js/wp-embed.min.js%3Fver=4.9.8'></script>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:37:02 by W3 Total Cache
|
||||
-->
|
||||
897
public/blog/category/tutorials/feed/index.html
Normal file
897
public/blog/category/tutorials/feed/index.html
Normal file
@@ -0,0 +1,897 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
|
||||
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/"
|
||||
>
|
||||
|
||||
<channel>
|
||||
<title>Tutorials – Owl's Blog on .NET development</title>
|
||||
<atom:link href="http://www.componentowl.com/blog/category/tutorials/feed/" rel="self" type="application/rss+xml" />
|
||||
<link>http://www.componentowl.com/blog</link>
|
||||
<description>Component Owl codes Better ListView control all night so you don't have to.</description>
|
||||
<lastBuildDate>Tue, 04 Sep 2018 13:10:05 +0000</lastBuildDate>
|
||||
<language>en-US</language>
|
||||
<sy:updatePeriod>hourly</sy:updatePeriod>
|
||||
<sy:updateFrequency>1</sy:updateFrequency>
|
||||
<generator>https://wordpress.org/?v=4.9.8</generator>
|
||||
<item>
|
||||
<title>Centering Images in Better ListView Sub-items</title>
|
||||
<link>http://www.componentowl.com/blog/centering-images-in-better-listview-sub-items/</link>
|
||||
<comments>http://www.componentowl.com/blog/centering-images-in-better-listview-sub-items/#respond</comments>
|
||||
<pubDate>Wed, 06 Aug 2014 21:14:10 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[align]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[center]]></category>
|
||||
<category><![CDATA[column]]></category>
|
||||
<category><![CDATA[columns]]></category>
|
||||
<category><![CDATA[header]]></category>
|
||||
<category><![CDATA[image]]></category>
|
||||
<category><![CDATA[images]]></category>
|
||||
<category><![CDATA[layout]]></category>
|
||||
<category><![CDATA[sub-item]]></category>
|
||||
<category><![CDATA[sub-items]]></category>
|
||||
<category><![CDATA[subitem]]></category>
|
||||
<category><![CDATA[subitems]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=906</guid>
|
||||
<description><![CDATA[How to align images to center in Better ListView sub-items and columns.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_907" style="width: 380px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/08/blv-overlay.png"><img class="size-full wp-image-907" title="Centered images in Better ListView" src="../../../wp-content/uploads/2014/08/blv-overlay.png" alt="Centered images in Better ListView" width="370" height="162" /></a><p class="wp-caption-text">Centered images in Better ListView</p></div>
|
||||
<p>Better ListView 3.11 supports aligning images in sub-items and columns to center. Simply set <strong>AlignHorizontalImage</strong> property of an sub-item or column to <strong>BetterListViewImageAlignmentHorizontal.OverlayCenter</strong>.</p>
|
||||
<p>The image will be centered inside available space regardless of text.</p>
|
||||
<p>This is useful for sub-items and column headers consisting of image only.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/centering-images-in-better-listview-sub-items/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Sub-item Check Boxes in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/#respond</comments>
|
||||
<pubDate>Sun, 06 Jul 2014 21:48:41 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Announcements]]></category>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[box]]></category>
|
||||
<category><![CDATA[boxes]]></category>
|
||||
<category><![CDATA[buttons]]></category>
|
||||
<category><![CDATA[cell]]></category>
|
||||
<category><![CDATA[cells]]></category>
|
||||
<category><![CDATA[check]]></category>
|
||||
<category><![CDATA[checkbox]]></category>
|
||||
<category><![CDATA[checkboxes]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[radio]]></category>
|
||||
<category><![CDATA[radios]]></category>
|
||||
<category><![CDATA[sub-item]]></category>
|
||||
<category><![CDATA[subitem]]></category>
|
||||
<category><![CDATA[subitems]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=901</guid>
|
||||
<description><![CDATA[How to display fully interactive check boxes and radio buttons in Better ListView sub-items.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_902" style="width: 395px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/07/blv-sub-item-checkboxes.png"><img class="size-full wp-image-902" title="blv-sub-item-checkboxes" src="../../../wp-content/uploads/2014/07/blv-sub-item-checkboxes.png" alt="Better ListView Sub-item Check Boxes" width="385" height="82" /></a><p class="wp-caption-text">Better ListView Sub-item Check Boxes</p></div>
|
||||
<p><a href="../../../../betterlistview.exe">Better ListView 3.10.0</a> allows displaying fully interactive check boxes and even radio buttons in sub-item cells.</p>
|
||||
<p>This feature can be activated simply by setting <strong>CheckBoxAppearance</strong> property of a given sub-item to other value than <strong>Hide</strong>. Such sub-item will not display check box or radio instead of image and text.</p>
|
||||
<p>Please note the first sub-item’s properties do not apply as they are overriden by item’s properties. These two are separate for the case of column reordering (keeping consistency of sub-item states).</p>
|
||||
<p>Another new feature in Better ListView is that check boxes or radios can be displayed disabled. This can be achieved by setting <strong>CheckEnabled</strong> property to <strong>false</strong> on the respective item or sub-item.</p>
|
||||
<p>Sub-item check boxes can be operated by both mouse and keyboard. Checking sub-item with keyboard can be done by navigating focus rectangle by arrow keys to the given sub-item and pressing spacebar.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/sub-item-check-boxes-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>How to Add Grid Lines in Empty Space in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/how-to-add-grid-lines-in-empty-space-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/how-to-add-grid-lines-in-empty-space-in-better-listview/#respond</comments>
|
||||
<pubDate>Wed, 30 Apr 2014 09:51:46 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[below]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[empty]]></category>
|
||||
<category><![CDATA[grid]]></category>
|
||||
<category><![CDATA[gridlines]]></category>
|
||||
<category><![CDATA[lines]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[space]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=894</guid>
|
||||
<description><![CDATA[How to draw grid lines below last item in Better ListView]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_895" style="width: 271px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/04/blv-gridlines-1.png"><img class="size-full wp-image-895 " title="Default list without grid lines below items" src="../../../wp-content/uploads/2014/04/blv-gridlines-1.png" alt="Default list without grid lines below items" width="261" height="308" /></a><p class="wp-caption-text">Default list without grid lines below items</p></div>
|
||||
<div id="attachment_896" style="width: 271px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/04/blv-gridlines-2.png"><img class=" wp-image-896 " title="List with grid lines added" src="../../../wp-content/uploads/2014/04/blv-gridlines-2.png" alt="List with grid lines added" width="261" height="308" /></a><p class="wp-caption-text">List with grid lines added</p></div>
|
||||
<p style="text-align: center;">
|
||||
<p>Setting grid lines in Better ListView is easy. Simply make sure you are using <strong>Details</strong> view (the default view). Then you can set <strong>GridLines</strong> property to one of the following values:</p>
|
||||
<ul>
|
||||
<li><strong>None</strong> – grid lines are hidden</li>
|
||||
<li><strong>Horizontal</strong> – only horizontal lines are displayed</li>
|
||||
<li><strong>Vertical</strong> – only vertical lines are displayed</li>
|
||||
<li><strong>Grid</strong> – both horizontal and vertical lines are displayed, forming a grid</li>
|
||||
</ul>
|
||||
<p>None of these settings, however, cause drawing lines <em>below</em> the last visible item, which may be desirable. The reason for this is that Better ListView supports <a href="http://www.componentowl.com/blog/custom-item-height-in-details-view-of-better-listview/">custom item height</a> and there is uncertainity about the spacing between new grid lines (smallest?, largest?, average?) It is up to your choice.</p>
|
||||
<p>To draw new grid lines, handle the <strong>DrawBackground</strong> event (or subclass BetterListView and override the <strong>OnDrawBackground</strong> method) with the following code:</p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
private void ListViewOnDrawBackground(object sender, BetterListViewDrawBackgroundEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
BetterListView listView = (BetterListView)sender;</p>
|
||||
<p> // get last visible item<br />
|
||||
var item = listView.BottomItem;</p>
|
||||
<p> if (item == null)<br />
|
||||
{<br />
|
||||
return;<br />
|
||||
}</p>
|
||||
<p> // measure row height<br />
|
||||
var bounds = listView.GetItemBounds(item);<br />
|
||||
int rowHeight = bounds.BoundsOuterExtended.Height;</p>
|
||||
<p> // draw additional lines<br />
|
||||
Rectangle rectClient = listView.ClientRectangleInner;<br />
|
||||
Pen penGridLines = new Pen(listView.ColorGridLines, 1.0f);</p>
|
||||
<p> int y = (bounds.BoundsOuterExtended.Bottom + rowHeight);</p>
|
||||
<p> while (y < rectClient.Bottom)
|
||||
{
|
||||
eventArgs.Graphics.DrawLine(
|
||||
penGridLines,
|
||||
rectClient.Left,
|
||||
y,
|
||||
rectClient.Right - 1,
|
||||
y);
|
||||
|
||||
y += rowHeight;
|
||||
}
|
||||
|
||||
penGridLines.Dispose();
|
||||
}
|
||||
[/csharp]
|
||||
|
||||
What this code does is getting the last visible item using <strong>BottomItem</strong> property. It is important to get this visible item instead of e.g. first item because <strong>GetItemBounds</strong> method returns non-null value on visible items only. The <strong>GetItemBounds</strong> method reveals item measurement which is used to determine item height and coordinate of its bottom. Finally, we draw new lines using current grid line color (<strong>ColorGridLines</strong> property) until reaching the bottom of the view.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/how-to-add-grid-lines-in-empty-space-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Alternating Rows in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/alternating-rows-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/alternating-rows-in-better-listview/#respond</comments>
|
||||
<pubDate>Tue, 22 Apr 2014 22:38:15 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[alternating]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[colored]]></category>
|
||||
<category><![CDATA[colors]]></category>
|
||||
<category><![CDATA[even]]></category>
|
||||
<category><![CDATA[odd]]></category>
|
||||
<category><![CDATA[rows]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=888</guid>
|
||||
<description><![CDATA[How to set up alternating row colors in Better ListView]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_889" style="width: 234px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/04/blv-alternating-rows.png"><img class="size-full wp-image-889" title="Alternating Rows" src="../../../wp-content/uploads/2014/04/blv-alternating-rows.png" alt="Alternating Rows" width="224" height="220" /></a><p class="wp-caption-text">Alternating Rows</p></div>
|
||||
<p>Lists with alternating row colors are more readable. It is very simple to implement alternating rows in Better ListView.</p>
|
||||
<p>Simply add <strong>DrawItemBackground</strong> event handler and fill background on odd/even items:</p>
|
||||
<p> </p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
private void ListViewOnDrawItemBackground(object sender, BetterListViewDrawItemBackgroundEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
if ((eventArgs.Item.Index & 1) == 1)<br />
|
||||
{<br />
|
||||
eventArgs.Graphics.FillRectangle(Brushes.AliceBlue, eventArgs.ItemBounds.BoundsOuter);<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/alternating-rows-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Search Filtering in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/search-filtering-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/search-filtering-in-better-listview/#comments</comments>
|
||||
<pubDate>Mon, 03 Feb 2014 14:58:30 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=882</guid>
|
||||
<description><![CDATA[How to improve item searching with highlights and dynamic filtering in Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_883" style="width: 93px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2014/02/image.gif"><img class="size-full wp-image-883" title="Search Filtering" src="../../../wp-content/uploads/2014/02/image.gif" alt="Search Filtering" width="83" height="153" /></a><p class="wp-caption-text">Search Filtering with highlight</p></div>
|
||||
<p>There are few ways of making searching in large list of items more convenient. For example, Better ListView provides <strong>Search Highlighting</strong> and <strong>Item Hiding</strong> features that can be used to improve searching. The above animation shows both of these features in action when searching for a word “pear” using keyboard.</p>
|
||||
<p>The implementation is very simple and involves handling just two events: <strong>ItemSearch</strong> (raised whenever item is searched, e.g. using keyboard ) and <strong>KeyDown</strong>:</p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
var listView = new BetterListView();</p>
|
||||
<p>listView.Items.AddRange(new[] { “apple”, “pear”, “pineapple”, “orange”, “grapefruit”, “cherry”, “avocado” });</p>
|
||||
<p>listView.ItemSearch += listView_ItemSearch;<br />
|
||||
listView.KeyDown += listView_KeyDown;<br />
|
||||
[/csharp]</p>
|
||||
<p>The ItemSearch event handler finds matching items and sets their visibility accordingly. It also updates the highlighting:</p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
void listView_ItemSearch(object sender, BetterListViewItemSearchEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
var listView = (BetterListView)sender;</p>
|
||||
<p> listView.BeginUpdate();</p>
|
||||
<p> // update item visibility according to search query string<br />
|
||||
foreach (var item in listView.Items)<br />
|
||||
{<br />
|
||||
bool match = item.Text.Contains(eventArgs.QueryString);</p>
|
||||
<p> if (match)<br />
|
||||
{<br />
|
||||
item.Visible = true;</p>
|
||||
<p> item.SearchHighlight = new BetterListViewSearchHighlight(<br />
|
||||
0,<br />
|
||||
item.Text.IndexOf(eventArgs.QueryString, StringComparison.Ordinal),<br />
|
||||
eventArgs.QueryString.Length);<br />
|
||||
}<br />
|
||||
else<br />
|
||||
{<br />
|
||||
item.Visible = false;<br />
|
||||
}<br />
|
||||
}</p>
|
||||
<p> listView.EndUpdate();<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p>Finally, the KeyDown event handler resets the view when Escape key is pressed (all items are made visible and the highlight is removed):</p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
void listView_KeyDown(object sender, KeyEventArgs e)<br />
|
||||
{<br />
|
||||
var listView = (BetterListView)sender;</p>
|
||||
<p> listView.BeginUpdate();</p>
|
||||
<p> if (e.KeyCode == Keys.Escape)<br />
|
||||
{<br />
|
||||
// remove search highlight<br />
|
||||
//NOTE: we could use BetterListView.RemoveSearchHighlight() but this applies to visible items only and some items are hidden at the time<br />
|
||||
foreach (var item in listView.Items)<br />
|
||||
{<br />
|
||||
item.SearchHighlight = BetterListViewSearchHighlight.Empty;<br />
|
||||
}</p>
|
||||
<p> // make all items visible<br />
|
||||
foreach (var item in listView.Items)<br />
|
||||
{<br />
|
||||
item.Visible = true;<br />
|
||||
}</p>
|
||||
<p> // mark the key as handled<br />
|
||||
e.Handled = true;</p>
|
||||
<p> // suppress KeyPress event to prevent ItemSearch from happening<br />
|
||||
e.SuppressKeyPress = true;<br />
|
||||
}</p>
|
||||
<p> listView.EndUpdate();<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p>And that’s it!</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/search-filtering-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>2</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Custom Scroll Bar Size in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/#comments</comments>
|
||||
<pubDate>Tue, 19 Mar 2013 15:56:22 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[bars]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[custom]]></category>
|
||||
<category><![CDATA[height]]></category>
|
||||
<category><![CDATA[large]]></category>
|
||||
<category><![CDATA[larger]]></category>
|
||||
<category><![CDATA[scroll]]></category>
|
||||
<category><![CDATA[scrollbar]]></category>
|
||||
<category><![CDATA[scrollbars]]></category>
|
||||
<category><![CDATA[size]]></category>
|
||||
<category><![CDATA[sizes]]></category>
|
||||
<category><![CDATA[width]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=878</guid>
|
||||
<description><![CDATA[How to make custom-sized scroll bars in Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_879" style="width: 319px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/03/blv-scroll-size.png"><img class="size-full wp-image-879" title="Better ListView custom scroll bar size" src="../../../wp-content/uploads/2013/03/blv-scroll-size.png" alt="Better ListView custom scroll bar size" width="309" height="208" /></a><p class="wp-caption-text">Better ListView custom scroll bar size</p></div>
|
||||
<p><a href="../../../../betterlistview.exe">Better ListView 3.7.0</a> contains two new properties that allow you to set custom horizontal and vertical scroll bar sizes:</p>
|
||||
<ul>
|
||||
<li><strong>HScrollBarWidth</strong></li>
|
||||
<li><strong>VScrollBarHeight</strong></li>
|
||||
</ul>
|
||||
<p>Of course, you can set these custom sizes in design-time as well as in run-time.</p>
|
||||
<p>Larger scroll bars are practical on modern touch-enabled devices with high resolution screens. The default scroll bar size (17 pixels) may be too small and you may want to make it just large enough for your index finger.</p>
|
||||
<p>This features works in both <a href="http://www.componentowl.com/better-listview">Better ListView</a> and <a href="http://www.componentowl.com/better-listview-express">Better ListView Express</a>.</p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/custom-scroll-bar-size-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>4</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>How to Make Items Fading on Edges in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/how-to-make-items-fading-on-edges-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/how-to-make-items-fading-on-edges-in-better-listview/#respond</comments>
|
||||
<pubDate>Tue, 05 Mar 2013 15:45:22 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[borders]]></category>
|
||||
<category><![CDATA[boundaries]]></category>
|
||||
<category><![CDATA[drawing]]></category>
|
||||
<category><![CDATA[drawn]]></category>
|
||||
<category><![CDATA[edge]]></category>
|
||||
<category><![CDATA[edges]]></category>
|
||||
<category><![CDATA[fading]]></category>
|
||||
<category><![CDATA[gradient]]></category>
|
||||
<category><![CDATA[items]]></category>
|
||||
<category><![CDATA[over]]></category>
|
||||
<category><![CDATA[owner]]></category>
|
||||
<category><![CDATA[ownerdrawing]]></category>
|
||||
<category><![CDATA[ownerdrawn]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=868</guid>
|
||||
<description><![CDATA[How to create the effect seen on smarphones when items are fading on control's edges with WinForms Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<p><img class="size-full wp-image-869 centered" title="Fading Edges in Better ListView" src="../../../wp-content/uploads/2013/03/blv-fading.png" alt="Fading Edges in Better ListView" width="140" height="148" /></p>
|
||||
<p>I found the effect of fading borders impressive on my smartphone. This is actualy very easy to do as it requires a simple gradient brush.</p>
|
||||
<p>You can obtain the same effect with Better ListView by overriding the <strong>DrawingRedrawCore</strong> method and do the drawing over the items:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
public class FadedListView : BetterListView<br />
|
||||
{<br />
|
||||
/// </p>
|
||||
<summary>
|
||||
/// Default size of the fading gradient.<br />
|
||||
/// </summary>
|
||||
<p> private const int FadingSize = 64;</p>
|
||||
<p> public CustomListView()<br />
|
||||
{<br />
|
||||
// this is required because we will draw outside item boundaries<br />
|
||||
OptimizedInvalidation = false;<br />
|
||||
}</p>
|
||||
<p> protected override void DrawingRedrawCore(Graphics graphics)<br />
|
||||
{<br />
|
||||
base.DrawingRedrawCore(graphics);</p>
|
||||
<p> // get boundaries of items (this excludes column headers and scroll bars)<br />
|
||||
Rectangle rectContent = BoundsContent;</p>
|
||||
<p> // get size of the gradient<br />
|
||||
int fadingSize = Math.Min(<br />
|
||||
FadingSize,<br />
|
||||
rectContent.Height >> 1);</p>
|
||||
<p> // get boundaries of the gradents<br />
|
||||
Rectangle rectFadingTop = new Rectangle(<br />
|
||||
rectContent.Left,<br />
|
||||
rectContent.Top,<br />
|
||||
rectContent.Width,<br />
|
||||
fadingSize);</p>
|
||||
<p> Rectangle rectFadingBottom = new Rectangle(<br />
|
||||
rectContent.Left,<br />
|
||||
rectContent.Bottom – fadingSize,<br />
|
||||
rectContent.Width,<br />
|
||||
fadingSize);</p>
|
||||
<p> // make boundaries larger to avoid rounding errors in gradient brushes<br />
|
||||
rectFadingTop.Inflate(1, 1);<br />
|
||||
rectFadingBottom.Inflate(1, 1);</p>
|
||||
<p> Brush brushFadingTop = new LinearGradientBrush(rectFadingTop, BackColor, Color.Transparent, LinearGradientMode.Vertical);<br />
|
||||
Brush brushFadingBottom = new LinearGradientBrush(rectFadingBottom, Color.Transparent, SystemColors.Window, LinearGradientMode.Vertical);</p>
|
||||
<p> // deflate the gradient boundaries back<br />
|
||||
rectFadingTop.Inflate(-1, -1);<br />
|
||||
rectFadingBottom.Inflate(-1, -1);</p>
|
||||
<p> // draw the gradients<br />
|
||||
graphics.FillRectangle(brushFadingTop, rectFadingTop);<br />
|
||||
graphics.FillRectangle(brushFadingBottom, rectFadingBottom);</p>
|
||||
<p> // cleanup<br />
|
||||
brushFadingTop.Dispose();<br />
|
||||
brushFadingBottom.Dispose();<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Public Class CustomListView<br />
|
||||
Inherits BetterListView<br />
|
||||
”’ </p>
|
||||
<summary>
|
||||
”’ Default size of the fading gradient.<br />
|
||||
”’ </summary>
|
||||
<p> Private Const FadingSize As Integer = 64</p>
|
||||
<p> Public Sub New()<br />
|
||||
‘ this is required because we will draw outside item boundaries<br />
|
||||
OptimizedInvalidation = False<br />
|
||||
End Sub</p>
|
||||
<p> Protected Overrides Sub DrawingRedrawCore(graphics As Graphics)<br />
|
||||
MyBase.DrawingRedrawCore(graphics)</p>
|
||||
<p> ‘ get boundaries of items (this excludes column headers and scroll bars)<br />
|
||||
Dim rectContent As Rectangle = BoundsContent</p>
|
||||
<p> ‘ get size of the gradient<br />
|
||||
Dim fadingSize__1 As Integer = Math.Min(FadingSize, rectContent.Height >> 1)</p>
|
||||
<p> ‘ get boundaries of the gradents<br />
|
||||
Dim rectFadingTop As New Rectangle(rectContent.Left, rectContent.Top, rectContent.Width, fadingSize__1)</p>
|
||||
<p> Dim rectFadingBottom As New Rectangle(rectContent.Left, rectContent.Bottom – fadingSize__1, rectContent.Width, fadingSize__1)</p>
|
||||
<p> ‘ make boundaries larger to avoid rounding errors in gradient brushes<br />
|
||||
rectFadingTop.Inflate(1, 1)<br />
|
||||
rectFadingBottom.Inflate(1, 1)</p>
|
||||
<p> Dim brushFadingTop As Brush = New LinearGradientBrush(rectFadingTop, BackColor, Color.Transparent, LinearGradientMode.Vertical)<br />
|
||||
Dim brushFadingBottom As Brush = New LinearGradientBrush(rectFadingBottom, Color.Transparent, SystemColors.Window, LinearGradientMode.Vertical)</p>
|
||||
<p> ‘ deflate the gradient boundaries back<br />
|
||||
rectFadingTop.Inflate(-1, -1)<br />
|
||||
rectFadingBottom.Inflate(-1, -1)</p>
|
||||
<p> ‘ draw the gradients<br />
|
||||
graphics.FillRectangle(brushFadingTop, rectFadingTop)<br />
|
||||
graphics.FillRectangle(brushFadingBottom, rectFadingBottom)</p>
|
||||
<p> ‘ cleanup<br />
|
||||
brushFadingTop.Dispose()<br />
|
||||
brushFadingBottom.Dispose()<br />
|
||||
End Sub<br />
|
||||
End Class<br />
|
||||
[/vb]</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/how-to-make-items-fading-on-edges-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Hot Tracking Items in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/hot-tracking-items-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/hot-tracking-items-in-better-listview/#respond</comments>
|
||||
<pubDate>Fri, 15 Feb 2013 22:52:12 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[backcolor]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[color]]></category>
|
||||
<category><![CDATA[drawing]]></category>
|
||||
<category><![CDATA[drawn]]></category>
|
||||
<category><![CDATA[font]]></category>
|
||||
<category><![CDATA[hot]]></category>
|
||||
<category><![CDATA[hottrack]]></category>
|
||||
<category><![CDATA[hottracking]]></category>
|
||||
<category><![CDATA[hover]]></category>
|
||||
<category><![CDATA[hovers]]></category>
|
||||
<category><![CDATA[hyperlink]]></category>
|
||||
<category><![CDATA[hyperlinks]]></category>
|
||||
<category><![CDATA[item]]></category>
|
||||
<category><![CDATA[items]]></category>
|
||||
<category><![CDATA[links]]></category>
|
||||
<category><![CDATA[mouse]]></category>
|
||||
<category><![CDATA[owner]]></category>
|
||||
<category><![CDATA[ownerdraw]]></category>
|
||||
<category><![CDATA[tracking]]></category>
|
||||
<category><![CDATA[underline]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=861</guid>
|
||||
<description><![CDATA[Tutorial on how to easily make item hot tracking work in Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<div id="attachment_862" style="width: 206px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/02/hot-item-backcolor.gif"><img class="size-full wp-image-862" title="Hot Tracking" src="../../../wp-content/uploads/2013/02/hot-item-backcolor.gif" alt="Hot Tracking" width="196" height="128" /></a><p class="wp-caption-text">Hot Tracking</p></div>
|
||||
<p>This post will show you how easy it is to make item hot tracking in <a href="../../../../betterlistview.exe">Better ListView</a>.</p>
|
||||
<p>First, create a global variable in your Form or Control-derived class to hold a Font instance we will use for hot tracked items:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
private Font fontHot = new Font(“Segoe UI”, 12.0f, FontStyle.Bold);<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Private fontHot As New Font(“Segoe UI”, 12F, FontStyle.Bold)<br />
|
||||
[/vb]</p>
|
||||
<p>This is not necessary, but we will re-use the font and will not need to create and dispose Font instances during hot tracking.</p>
|
||||
<p>Second, initialize a <strong>BetterListView</strong> instance:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
var listView = new CustomListView();</p>
|
||||
<p>// add some items in the list<br />
|
||||
listView.Items.AddRange(new string[] { “The Hobbit”, “The People’s Crisis”, “The Net” });</p>
|
||||
<p>// set default font for the items<br />
|
||||
listView.FontItems = new Font(“Segoe UI”, 12.0f, FontStyle.Regular);</p>
|
||||
<p>// add HitTestChanged event handler<br />
|
||||
listView.HitTestChanged += ListViewHitTestChanged;<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Dim listView = New CustomListView()</p>
|
||||
<p>‘ add some items in the list<br />
|
||||
listView.Items.AddRange(New String() {“The Hobbit”, “The People’s Crisis”, “The Net”})</p>
|
||||
<p>‘ set default font for the items<br />
|
||||
listView.FontItems = New Font(“Segoe UI”, 12F, FontStyle.Regular)</p>
|
||||
<p>‘ add HitTestChanged event handler<br />
|
||||
listView.HitTestChanged += ListViewHitTestChanged<br />
|
||||
[/vb]</p>
|
||||
<p>Finally, implement the <strong>HitTestChanged</strong> event handler:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
private void ListViewHitTestChanged(object sender, BetterListViewHitTestChangedEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
BetterListView listView = (sender as BetterListView);<br />
|
||||
BetterListViewItem itemCurrent = eventArgs.HitTestInfoCurrent.ItemDisplay;<br />
|
||||
BetterListViewItem itemNew = eventArgs.HitTestInfoNew.ItemDisplay;</p>
|
||||
<p> if (!ReferenceEquals(itemCurrent, itemNew))<br />
|
||||
{<br />
|
||||
listView.BeginUpdate();</p>
|
||||
<p> if (itemCurrent != null)<br />
|
||||
{<br />
|
||||
// reset colors and font to default<br />
|
||||
itemCurrent.BackColor = Color.Empty;<br />
|
||||
itemCurrent.ForeColor = Color.Empty;<br />
|
||||
itemCurrent.Font = null;<br />
|
||||
}</p>
|
||||
<p> if (itemNew != null)<br />
|
||||
{<br />
|
||||
// set hot background color of an item newly hovered<br />
|
||||
itemNew.BackColor = Color.GreenYellow;<br />
|
||||
itemNew.ForeColor = Color.DarkRed;<br />
|
||||
itemNew.Font = this.fontHot;<br />
|
||||
}</p>
|
||||
<p> listView.EndUpdate();<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Private Sub ListViewHitTestChanged(sender As Object, eventArgs As BetterListViewHitTestChangedEventArgs)<br />
|
||||
Dim listView As BetterListView = TryCast(sender, BetterListView)<br />
|
||||
Dim itemCurrent As BetterListViewItem = eventArgs.HitTestInfoCurrent.ItemDisplay<br />
|
||||
Dim itemNew As BetterListViewItem = eventArgs.HitTestInfoNew.ItemDisplay</p>
|
||||
<p> If Not ReferenceEquals(itemCurrent, itemNew) Then<br />
|
||||
listView.BeginUpdate()</p>
|
||||
<p> If itemCurrent IsNot Nothing Then<br />
|
||||
‘ reset colors and font to default<br />
|
||||
itemCurrent.BackColor = Color.Empty<br />
|
||||
itemCurrent.ForeColor = Color.Empty<br />
|
||||
itemCurrent.Font = Nothing<br />
|
||||
End If</p>
|
||||
<p> If itemNew IsNot Nothing Then<br />
|
||||
‘ set hot background color of an item newly hovered<br />
|
||||
itemNew.BackColor = Color.GreenYellow<br />
|
||||
itemNew.ForeColor = Color.DarkRed<br />
|
||||
itemNew.Font = Me.fontHot<br />
|
||||
End If</p>
|
||||
<p> listView.EndUpdate()<br />
|
||||
End If<br />
|
||||
End Sub<br />
|
||||
[/vb]</p>
|
||||
<p>This method is called whenever an element over which mouse cursors hovers changes. For example, when one moves the mouse cursor between two item’s expand button element and text element or between two items. We detect just the latter case and set item properties accordingly.</p>
|
||||
<p><strong>Thats’ it!</strong></p>
|
||||
<p>Of course, you can change any of the properties during hot tracking or make use of rich <a href="../../../wp-content/uploads/2013/02/chapter-owner-draw.html">Owner Drawing</a> capabilities.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/hot-tracking-items-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Binding Images in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/binding-images-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/binding-images-in-better-listview/#respond</comments>
|
||||
<pubDate>Mon, 28 Jan 2013 03:54:22 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[bind]]></category>
|
||||
<category><![CDATA[binding]]></category>
|
||||
<category><![CDATA[bound]]></category>
|
||||
<category><![CDATA[data]]></category>
|
||||
<category><![CDATA[databinding]]></category>
|
||||
<category><![CDATA[databound]]></category>
|
||||
<category><![CDATA[icon]]></category>
|
||||
<category><![CDATA[icons]]></category>
|
||||
<category><![CDATA[imagekey]]></category>
|
||||
<category><![CDATA[imagelist]]></category>
|
||||
<category><![CDATA[images]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=850</guid>
|
||||
<description><![CDATA[How to use images instead of textual data in Better ListView data binding.]]></description>
|
||||
<content:encoded><![CDATA[<p><a href="../../../../betterlistview.exe">Better ListView 3.5</a> have improved data binding functionality. You can adjust how the data rows will be converted to items/sub-items and vice versa. For example, you can show images based on the bound data:</p>
|
||||
<div id="attachment_853" style="width: 270px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/screen-blv-binding3.png"><img class="size-full wp-image-853" title="Better ListView with bound list" src="../../../wp-content/uploads/2013/01/screen-blv-binding3.png" alt="Better ListView with bound list" width="260" height="222" /></a><p class="wp-caption-text">Better ListView with bound list</p></div>
|
||||
<p>Say you have a simple <strong>Server</strong> type:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
public class Server<br />
|
||||
{<br />
|
||||
public string ServerName<br />
|
||||
{<br />
|
||||
get;<br />
|
||||
set;<br />
|
||||
}</p>
|
||||
<p> public int ServerStatus<br />
|
||||
{<br />
|
||||
get;<br />
|
||||
set;<br />
|
||||
}</p>
|
||||
<p> public Server(string name, int status)<br />
|
||||
{<br />
|
||||
ServerName = name;<br />
|
||||
ServerStatus = status;<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Public Class Server</p>
|
||||
<p> Public Property ServerName() As String<br />
|
||||
Get<br />
|
||||
Return m_ServerName<br />
|
||||
End Get<br />
|
||||
Set<br />
|
||||
m_ServerName = Value<br />
|
||||
End Set<br />
|
||||
End Property</p>
|
||||
<p> Public Property ServerStatus() As Integer<br />
|
||||
Get<br />
|
||||
Return m_ServerStatus<br />
|
||||
End Get<br />
|
||||
Set<br />
|
||||
m_ServerStatus = Value<br />
|
||||
End Set<br />
|
||||
End Property</p>
|
||||
<p> Private m_ServerName As String<br />
|
||||
Private m_ServerStatus As Integer</p>
|
||||
<p> Public Sub New(name As String, status As Integer)<br />
|
||||
ServerName = name<br />
|
||||
ServerStatus = status<br />
|
||||
End Sub</p>
|
||||
<p>End Class<br />
|
||||
[/vb]</p>
|
||||
<p>This class contains two properties representing server name and its status. The server name is a textual property and one would like this mapped to item label as usual. However, the server status is a numerical value which have no meaning to the user even when converted to string. In fact, the numerical value can be 0 (<em>offline</em>), 1 (<em>idle</em>) or 2 (<em>running</em>). You may like to display color icons instead of plain strings or numbers. What if we would like to even highlight some items or change other properties during data binding? This is possible through Better ListView data binding customization.</p>
|
||||
<p>First, let’s create a list of <strong>Server</strong> objects and bind this to a Better ListView. We would like to have columns auto-generated, so we set <strong>DataBindColumns</strong> to <strong>true</strong>:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
Server[] servers = new[]<br />
|
||||
{<br />
|
||||
new Server(“Andromeda”, 2),<br />
|
||||
new Server(“Taurus”, 1),<br />
|
||||
new Server(“Himalia”, 2),<br />
|
||||
new Server(“Nanda”, 2),<br />
|
||||
new Server(“Elara”, 0),<br />
|
||||
new Server(“Perseus”, 2),<br />
|
||||
new Server(“Titan”, 1)<br />
|
||||
};</p>
|
||||
<p>ImageList imageList = new ImageList();</p>
|
||||
<p>imageList.ColorDepth = ColorDepth.Depth32Bit;<br />
|
||||
imageList.ImageSize = new Size(16, 16);<br />
|
||||
imageList.Images.AddStrip(Image.FromFile(“status.png”));</p>
|
||||
<p>BetterListView listView = new CustomListView();</p>
|
||||
<p>listView.DataBindColumns = true;<br />
|
||||
listView.DataSource = servers;<br />
|
||||
listView.ImageList = imageList;<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Dim servers As Server() = New () {New Server(“Andromeda”, 2), New Server(“Taurus”, 1), New Server(“Himalia”, 2), New Server(“Nanda”, 2), New Server(“Elara”, 0), New Server(“Perseus”, 2), _<br />
|
||||
New Server(“Titan”, 1)}</p>
|
||||
<p>Dim imageList As New ImageList()</p>
|
||||
<p>imageList.ColorDepth = ColorDepth.Depth32Bit<br />
|
||||
imageList.ImageSize = New Size(16, 16)<br />
|
||||
imageList.Images.AddStrip(Image.FromFile(“status.png”))</p>
|
||||
<p>Dim listView As BetterListView = New CustomListView()</p>
|
||||
<p>listView.DataBindColumns = True<br />
|
||||
listView.DataSource = servers<br />
|
||||
listView.ImageList = imageList<br />
|
||||
[/vb]</p>
|
||||
<p>Let’s take a look on the result:</p>
|
||||
<div id="attachment_851" style="width: 270px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/screen-blv-binding1.png"><img class="size-full wp-image-851" title="Better ListView with bound list" src="../../../wp-content/uploads/2013/01/screen-blv-binding1.png" alt="Better ListView with bound list" width="260" height="173" /></a><p class="wp-caption-text">Better ListView with bound list</p></div>
|
||||
<p> </p>
|
||||
<p>The columns were auto-generated and <strong>Server</strong> properties properly converted to item and sub-item labels. The generated column header labels are just names of the corresponding properties (ServerName, ServerStatus). You can make the names more convenient by providing <strong>DisplayNameAttribute</strong> on the respective properties:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
…</p>
|
||||
<p>[DisplayName(“Server Name”)]<br />
|
||||
public string ServerName<br />
|
||||
{<br />
|
||||
get;<br />
|
||||
set;<br />
|
||||
}</p>
|
||||
<p>[DisplayName(“Status”)]<br />
|
||||
public int ServerStatus<br />
|
||||
{<br />
|
||||
get;<br />
|
||||
set;<br />
|
||||
}</p>
|
||||
<p>…<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
…</p>
|
||||
<p><DisplayName("Server Name")> _<br />
|
||||
Public Property ServerName() As String<br />
|
||||
Get<br />
|
||||
Return m_ServerName<br />
|
||||
End Get<br />
|
||||
Set<br />
|
||||
m_ServerName = Value<br />
|
||||
End Set<br />
|
||||
End Property</p>
|
||||
<p><DisplayName("Status")> _<br />
|
||||
Public Property ServerStatus() As Integer<br />
|
||||
Get<br />
|
||||
Return m_ServerStatus<br />
|
||||
End Get<br />
|
||||
Set<br />
|
||||
m_ServerStatus = Value<br />
|
||||
End Set<br />
|
||||
End Property</p>
|
||||
<p>…<br />
|
||||
[/vb]</p>
|
||||
<p>Now the column names are more user friendly:</p>
|
||||
<div id="attachment_852" style="width: 270px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/screen-blv-binding2.png"><img class="size-full wp-image-852" title="Better ListView with bound list" src="../../../wp-content/uploads/2013/01/screen-blv-binding2.png" alt="Better ListView with bound list" width="260" height="173" /></a><p class="wp-caption-text">Better ListView with bound list</p></div>
|
||||
<p>We will finally add state images (instead of the numbers) and highlight some items. To do that, we have to override <strong>DataCreateItem</strong> method in a class derived from <strong>BetterListView</strong>:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
public class CustomListView : BetterListView<br />
|
||||
{<br />
|
||||
protected override BetterListViewItem DataCreateItem(<br />
|
||||
CurrencyManager currentDataManager,<br />
|
||||
BindingMemberInfo[] currentDisplayMembers,<br />
|
||||
int index)<br />
|
||||
{<br />
|
||||
// create item using the base implementation<br />
|
||||
BetterListViewItem item = base.DataCreateItem(<br />
|
||||
currentDataManager,<br />
|
||||
currentDisplayMembers,<br />
|
||||
index);</p>
|
||||
<p> // get server status from the current Server object<br />
|
||||
int serverStatus = ((Server)currentDataManager.List[index]).ServerStatus;</p>
|
||||
<p> if (serverStatus == 0)<br />
|
||||
{<br />
|
||||
// bold item when server status is 0<br />
|
||||
item.IsBold = true;<br />
|
||||
}</p>
|
||||
<p> // get sub-item corresponding to server status<br />
|
||||
BetterListViewSubItem subItemStatus = item.SubItems[1];</p>
|
||||
<p> subItemStatus.ImageIndex = serverStatus; // set image for the sub-item<br />
|
||||
subItemStatus.Text = “”; // clear sub-item text</p>
|
||||
<p> return item;<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Public Class CustomListView<br />
|
||||
Inherits BetterListView</p>
|
||||
<p> Protected Overrides Function DataCreateItem(currentDataManager As CurrencyManager, currentDisplayMembers As BindingMemberInfo(), index As Integer) As BetterListViewItem</p>
|
||||
<p> ‘ create item using the base implementation<br />
|
||||
Dim item As BetterListViewItem = MyBase.DataCreateItem(currentDataManager, currentDisplayMembers, index)</p>
|
||||
<p> ‘ get server status from the current Server object<br />
|
||||
Dim serverStatus As Integer = DirectCast(currentDataManager.List(index), Server).ServerStatus</p>
|
||||
<p> If serverStatus = 0 Then<br />
|
||||
‘ bold item when server status is 0<br />
|
||||
item.IsBold = True<br />
|
||||
End If</p>
|
||||
<p> ‘ get sub-item corresponding to server status<br />
|
||||
Dim subItemStatus As BetterListViewSubItem = item.SubItems(1)</p>
|
||||
<p> subItemStatus.ImageIndex = serverStatus<br />
|
||||
‘ set image for the sub-item<br />
|
||||
subItemStatus.Text = “”<br />
|
||||
‘ clear sub-item text<br />
|
||||
Return item</p>
|
||||
<p> End Function</p>
|
||||
<p>End Class<br />
|
||||
[/vb]</p>
|
||||
<p>Now the control displays adjusted images and a highlighted item:</p>
|
||||
<div id="attachment_853" style="width: 270px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/screen-blv-binding3.png"><img class="size-full wp-image-853" title="Better ListView with bound list" src="../../../wp-content/uploads/2013/01/screen-blv-binding3.png" alt="Better ListView with bound list" width="260" height="222" /></a><p class="wp-caption-text">Better ListView with bound list</p></div>
|
||||
<p>Note that you can customize data binding the other way as well by overriding the <strong>DataUpdateSubItemToSource</strong> method. This method is responsible for updating the bound data source when item/sub-item value have been modified.</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/binding-images-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>0</slash:comments>
|
||||
</item>
|
||||
<item>
|
||||
<title>Enabling Search Highlight in Better ListView</title>
|
||||
<link>http://www.componentowl.com/blog/enabling-search-highlight-in-better-listview/</link>
|
||||
<comments>http://www.componentowl.com/blog/enabling-search-highlight-in-better-listview/#comments</comments>
|
||||
<pubDate>Fri, 11 Jan 2013 02:00:17 +0000</pubDate>
|
||||
<dc:creator><![CDATA[Libor Tinka]]></dc:creator>
|
||||
<category><![CDATA[Better ListView]]></category>
|
||||
<category><![CDATA[Components]]></category>
|
||||
<category><![CDATA[Tutorials]]></category>
|
||||
<category><![CDATA[better]]></category>
|
||||
<category><![CDATA[better listview]]></category>
|
||||
<category><![CDATA[highlight]]></category>
|
||||
<category><![CDATA[highlighting]]></category>
|
||||
<category><![CDATA[items]]></category>
|
||||
<category><![CDATA[list]]></category>
|
||||
<category><![CDATA[listview]]></category>
|
||||
<category><![CDATA[mark]]></category>
|
||||
<category><![CDATA[matched]]></category>
|
||||
<category><![CDATA[search]]></category>
|
||||
<category><![CDATA[searching]]></category>
|
||||
|
||||
<guid isPermaLink="false">http://www.componentowl.com/blog/?p=843</guid>
|
||||
<description><![CDATA[How to use and customize Search Highlight feature in Better ListView.]]></description>
|
||||
<content:encoded><![CDATA[<p>We have improved <a href="../../../wp-content/uploads/2013/01/chapter-search.html">item searching</a> capabilities of <a href="http://www.componentowl.com/better-listview">Better ListView</a> by introducing <strong>Search Highlight</strong> feature. This feature automatically shows search matches and works out of the box with both searching by typing and searching from code (e.g. using search box):</p>
|
||||
<div id="attachment_844" style="width: 358px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/search-highlight-1.gif"><img class="size-full wp-image-844" title="Search Highlight Feature" src="../../../wp-content/uploads/2013/01/search-highlight-1.gif" alt="Search Highlight Feature" width="348" height="193" /></a><p class="wp-caption-text">Search Highlight Feature</p></div>
|
||||
<p> </p>
|
||||
<p>To enable the highlight, simply add <strong>UpdateSearchHighlight</strong> option in the search settings:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
listView.SearchSettings = new BetterListViewSearchSettings(<br />
|
||||
listView.SearchSettings.Mode,<br />
|
||||
listView.SearchSettings.Options | BetterListViewSearchOptions.UpdateSearchHighlight,<br />
|
||||
listView.SearchSettings.SubItemIndices);<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
ListView.SearchSettings = New BetterListViewSearchSettings(<br />
|
||||
listView.SearchSettings.Mode,<br />
|
||||
listView.SearchSettings.Options Or BetterListViewSearchOptions.UpdateSearchHighlight,<br />
|
||||
listView.SearchSettings.SubItemIndices)<br />
|
||||
[/vb]</p>
|
||||
<p>Every item contains information about the match in the <strong>BetterListViewItem.SearchHighlight</strong> property. When <strong>BetterListViewItem.SearchHighlight.IsEmpty</strong> is <strong>true</strong>, the item was not matched by the search. Otherwise it contains information about the matched substring: its index and number of characters.</p>
|
||||
<p>Highlight colors can be adjusted by three properties: <strong>ColorSearchHighlight</strong>, <strong>ColorSearchHighlightBorder</strong> and <strong>ColorSearchHighlightText</strong>:</p>
|
||||
<div id="attachment_846" style="width: 337px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/properties.png"><img class="size-full wp-image-846" title="Search Highlight Properties" src="../../../wp-content/uploads/2013/01/properties.png" alt="Search Highlight Properties" width="327" height="352" /></a><p class="wp-caption-text">Search Highlight Properties</p></div>
|
||||
<p>The display can be adjusted even further with owner drawing:</p>
|
||||
<div id="attachment_845" style="width: 358px" class="wp-caption aligncenter"><a href="../../../wp-content/uploads/2013/01/search-highlight-2.gif"><img class="size-full wp-image-845" title="Customized Search Highlight Feature" src="../../../wp-content/uploads/2013/01/search-highlight-2.gif" alt="Customized Search Highlight Feature" width="348" height="193" /></a><p class="wp-caption-text">Customized Search Highlight Feature</p></div>
|
||||
<p>Here we have used ellipses drawn on item background by modifying <strong>OnDrawItem</strong> and <strong>OnDrawItemBackground</strong> methods of <strong>BetterListView</strong>:</p>
|
||||
<p><strong>C#</strong></p>
|
||||
<p>[csharp gutter=”false” toolbar=”false”]<br />
|
||||
using System.Drawing;<br />
|
||||
using System.Drawing.Drawing2D;</p>
|
||||
<p>using BetterListView;</p>
|
||||
<p>internal sealed class CustomListView : BetterListView<br />
|
||||
{<br />
|
||||
protected override void OnDrawItem(BetterListViewDrawItemEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
// do not draw search highlight because we will draw our own<br />
|
||||
eventArgs.DrawSearchHighlight = false;</p>
|
||||
<p> base.OnDrawItem(eventArgs);<br />
|
||||
}</p>
|
||||
<p> protected override void OnDrawItemBackground(BetterListViewDrawItemBackgroundEventArgs eventArgs)<br />
|
||||
{<br />
|
||||
base.OnDrawItemBackground(eventArgs);</p>
|
||||
<p> // draw custom search highlight on item background<br />
|
||||
BetterListViewSearchHighlight searchHighlight = eventArgs.Item.SearchHighlight;</p>
|
||||
<p> if (searchHighlight.IsEmpty == false)<br />
|
||||
{<br />
|
||||
eventArgs.Graphics.SmoothingMode = SmoothingMode.HighQuality;</p>
|
||||
<p> Rectangle rectHighlight = eventArgs.ItemBounds.SubItemBounds[searchHighlight.ColumnIndex].BoundsSearchHighlight;</p>
|
||||
<p> Brush brushHighlight = new SolidBrush(Color.FromArgb(128, Color.MediumPurple));<br />
|
||||
Pen penHighlight = new Pen(Color.Purple, 1.0f);</p>
|
||||
<p> eventArgs.Graphics.FillEllipse(brushHighlight, rectHighlight);<br />
|
||||
eventArgs.Graphics.DrawEllipse(penHighlight, rectHighlight);</p>
|
||||
<p> brushHighlight.Dispose();<br />
|
||||
penHighlight.Dispose();<br />
|
||||
}<br />
|
||||
}<br />
|
||||
}<br />
|
||||
[/csharp]</p>
|
||||
<p><strong>Visual Basic</strong></p>
|
||||
<p>[vb gutter=”false” toolbar=”false”]<br />
|
||||
Imports System.Drawing<br />
|
||||
Imports System.Drawing.Drawing2D</p>
|
||||
<p>Imports BetterListView</p>
|
||||
<p>Friend NotInheritable Class CustomListView<br />
|
||||
Inherits BetterListView<br />
|
||||
Protected Overrides Sub OnDrawItem(eventArgs As BetterListViewDrawItemEventArgs)<br />
|
||||
‘ do not draw search highlight because we will draw our own<br />
|
||||
eventArgs.DrawSearchHighlight = False</p>
|
||||
<p> MyBase.OnDrawItem(eventArgs)<br />
|
||||
End Sub</p>
|
||||
<p> Protected Overrides Sub OnDrawItemBackground(eventArgs As BetterListViewDrawItemBackgroundEventArgs)<br />
|
||||
MyBase.OnDrawItemBackground(eventArgs)</p>
|
||||
<p> ‘ draw custom search highlight on item background<br />
|
||||
Dim searchHighlight As BetterListViewSearchHighlight = eventArgs.Item.SearchHighlight</p>
|
||||
<p> If searchHighlight.IsEmpty = False Then<br />
|
||||
eventArgs.Graphics.SmoothingMode = SmoothingMode.HighQuality</p>
|
||||
<p> Dim rectHighlight As Rectangle = eventArgs.ItemBounds.SubItemBounds(searchHighlight.ColumnIndex).BoundsSearchHighlight</p>
|
||||
<p> Dim brushHighlight As Brush = New SolidBrush(Color.FromArgb(128, Color.MediumPurple))<br />
|
||||
Dim penHighlight As New Pen(Color.Purple, 1F)</p>
|
||||
<p> eventArgs.Graphics.FillEllipse(brushHighlight, rectHighlight)<br />
|
||||
eventArgs.Graphics.DrawEllipse(penHighlight, rectHighlight)</p>
|
||||
<p> brushHighlight.Dispose()<br />
|
||||
penHighlight.Dispose()<br />
|
||||
End If<br />
|
||||
End Sub<br />
|
||||
End Class<br />
|
||||
[/vb]</p>
|
||||
]]></content:encoded>
|
||||
<wfw:commentRss>http://www.componentowl.com/blog/enabling-search-highlight-in-better-listview/feed/</wfw:commentRss>
|
||||
<slash:comments>1</slash:comments>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:38:25 by W3 Total Cache
|
||||
-->
|
||||
248
public/blog/category/tutorials/index.html
Normal file
248
public/blog/category/tutorials/index.html
Normal file
@@ -0,0 +1,248 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||||
|
||||
<head profile="http://gmpg.org/xfn/11">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
|
||||
<meta name="blogcatalog" content="9BC9953358" />
|
||||
<title>Tutorials « Owl's Blog on .NET development</title>
|
||||
|
||||
<link rel="stylesheet" href="../../wp-content/themes/componentowl/style.css" type="text/css" media="screen" />
|
||||
<link rel="pingback" href="../../xmlrpc.php.html" />
|
||||
|
||||
|
||||
<link rel='dns-prefetch' href='http://s.w.org/' />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Feed" href="../../feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Comments Feed" href="../../comments/feed/index.html" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Owl's Blog on .NET development » Tutorials Category Feed" href="feed/index.html" />
|
||||
<script type="text/javascript">
|
||||
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/11\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/www.componentowl.com\/blog\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.9.8"}};
|
||||
!function(a,b,c){function d(a,b){var c=String.fromCharCode;l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,a),0,0);var d=k.toDataURL();l.clearRect(0,0,k.width,k.height),l.fillText(c.apply(this,b),0,0);var e=k.toDataURL();return d===e}function e(a){var b;if(!l||!l.fillText)return!1;switch(l.textBaseline="top",l.font="600 32px Arial",a){case"flag":return!(b=d([55356,56826,55356,56819],[55356,56826,8203,55356,56819]))&&(b=d([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]),!b);case"emoji":return b=d([55358,56760,9792,65039],[55358,56760,8203,9792,65039]),!b}return!1}function f(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var g,h,i,j,k=b.createElement("canvas"),l=k.getContext&&k.getContext("2d");for(j=Array("flag","emoji"),c.supports={everything:!0,everythingExceptFlag:!0},i=0;i<j.length;i++)c.supports[j[i]]=e(j[i]),c.supports.everything=c.supports.everything&&c.supports[j[i]],"flag"!==j[i]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[j[i]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(h=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",h,!1),a.addEventListener("load",h,!1)):(a.attachEvent("onload",h),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),g=c.source||{},g.concatemoji?f(g.concatemoji):g.wpemoji&&g.twemoji&&(f(g.twemoji),f(g.wpemoji)))}(window,document,window._wpemojiSettings);
|
||||
</script>
|
||||
<style type="text/css">
|
||||
img.wp-smiley,
|
||||
img.emoji {
|
||||
display: inline !important;
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
height: 1em !important;
|
||||
width: 1em !important;
|
||||
margin: 0 .07em !important;
|
||||
vertical-align: -0.1em !important;
|
||||
background: none !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
</style>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery.js%3Fver=1.12.4'></script>
|
||||
<script type='text/javascript' src='../../wp-includes/js/jquery/jquery-migrate.min.js%3Fver=1.4.1'></script>
|
||||
<link rel='https://api.w.org/' href='../../wp-json/index.html' />
|
||||
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="../../xmlrpc.php%3Frsd" />
|
||||
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="../../wp-includes/wlwmanifest.xml" />
|
||||
<meta name="generator" content="WordPress 4.9.8" />
|
||||
<script type="text/javascript" src="../../../javascripts/plugins/jquery.validation.js"></script>
|
||||
<script type="text/javascript" src="../../../javascripts/dextronet.js"></script>
|
||||
<script type="text/javascript" src="../../wp-content/themes/componentowl/javascripts/theme.js"></script>
|
||||
<!--[if IE 6]>
|
||||
<style type="text/css">
|
||||
#d-menu .dropdown .outer { background-image: none; }
|
||||
#d-menu .dropdown .shadowbox { background-image: none; }
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body class="archive category category-tutorials category-13">
|
||||
|
||||
<div class="d-page">
|
||||
<div class="d-placing">
|
||||
<div class="d-content-wrap">
|
||||
|
||||
<div class="d-main">
|
||||
|
||||
<h1 class="blog-name"><a href="../../../blog.html">Owl's Blog on .NET development</a></h1>
|
||||
|
||||
<div class="blog-description">Component Owl codes Better ListView control all night so you don't have to.</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 class="pagetitle">Archive for the ‘Tutorials’ Category</h2>
|
||||
|
||||
<ul style="line-height: 1.5em">
|
||||
|
||||
<li><a href="../../index.html%3Fp=906.html" rel="bookmark" title="Permanent Link to Centering Images in Better ListView Sub-items">Centering Images in Better ListView Sub-items</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=901.html" rel="bookmark" title="Permanent Link to Sub-item Check Boxes in Better ListView">Sub-item Check Boxes in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=894.html" rel="bookmark" title="Permanent Link to How to Add Grid Lines in Empty Space in Better ListView">How to Add Grid Lines in Empty Space in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=888.html" rel="bookmark" title="Permanent Link to Alternating Rows in Better ListView">Alternating Rows in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=882.html" rel="bookmark" title="Permanent Link to Search Filtering in Better ListView">Search Filtering in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=878.html" rel="bookmark" title="Permanent Link to Custom Scroll Bar Size in Better ListView">Custom Scroll Bar Size in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=868.html" rel="bookmark" title="Permanent Link to How to Make Items Fading on Edges in Better ListView">How to Make Items Fading on Edges in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=861.html" rel="bookmark" title="Permanent Link to Hot Tracking Items in Better ListView">Hot Tracking Items in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=850.html" rel="bookmark" title="Permanent Link to Binding Images in Better ListView">Binding Images in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=843.html" rel="bookmark" title="Permanent Link to Enabling Search Highlight in Better ListView">Enabling Search Highlight in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=831.html" rel="bookmark" title="Permanent Link to Custom label edit: How to rename file names without extension in Better ListView">Custom label edit: How to rename file names without extension in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=808.html" rel="bookmark" title="Permanent Link to Better ListView Tip: How to Draw Custom Selection">Better ListView Tip: How to Draw Custom Selection</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=796.html" rel="bookmark" title="Permanent Link to How to Store Better ListView Content in a String (User Request)">How to Store Better ListView Content in a String (User Request)</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=780.html" rel="bookmark" title="Permanent Link to Right-aligned Images in Better ListView">Right-aligned Images in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=771.html" rel="bookmark" title="Permanent Link to Customize Label Editing (Embedded) Control for Each Line in Better ListView">Customize Label Editing (Embedded) Control for Each Line in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=468.html" rel="bookmark" title="Permanent Link to How To: Dynamically Resize Focused Item">How To: Dynamically Resize Focused Item</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=437.html" rel="bookmark" title="Permanent Link to Vertical Alignment and Text Wrapping in Better ListView">Vertical Alignment and Text Wrapping in Better ListView</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=398.html" rel="bookmark" title="Permanent Link to How to Display Items in Custom States">How to Display Items in Custom States</a></li>
|
||||
|
||||
<li><a href="../../index.html%3Fp=330.html" rel="bookmark" title="Permanent Link to How to Hide a Column in Better ListView">How to Hide a Column in Better ListView</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="navigation">
|
||||
<div class="alignleft"></div>
|
||||
<div class="alignright"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-sidebar">
|
||||
|
||||
|
||||
<div class="dextronet-feeds">
|
||||
<ul class="links">
|
||||
<li><a href="../../feed/index.html" class="rss">Subscribe to our RSS</a></li>
|
||||
<li><a href="http://twitter.com/ComponentOwl" class="twitter">Follow us on twitter</a></li>
|
||||
<li><a href="http://facebook.com/ComponentOwl" class="facebook">Follow us on Facebook</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<form role="search" method="get" id="searchform-sidebar" action="../../../blog.html" >
|
||||
<div><label class="screen-reader-text" for="s-sidebar">Search for:</label>
|
||||
<input type="text" value="Search..." name="s" id="s-sidebar" class="search inline-label" />
|
||||
<input type="image" id="searchsubmit-sidebar" src="../../wp-content/themes/componentowl/images/search.gif" value="Search" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="sidebar" role="complementary">
|
||||
<ul>
|
||||
<li id="categories-3" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> <ul>
|
||||
<li class="cat-item cat-item-3"><a href="../announcements/index.html" >Announcements</a> (8)
|
||||
</li>
|
||||
<li class="cat-item cat-item-21"><a href="../better-listview/index.html" >Better ListView</a> (44)
|
||||
</li>
|
||||
<li class="cat-item cat-item-4"><a href="../components/index.html" >Components</a> (9)
|
||||
</li>
|
||||
<li class="cat-item cat-item-222"><a href="../programming/index.html" >Programming</a> (2)
|
||||
</li>
|
||||
<li class="cat-item cat-item-13 current-cat"><a href="index.html" >Tutorials</a> (19)
|
||||
</li>
|
||||
</ul>
|
||||
</li><li id="archives-3" class="widget widget_archive"><h2 class="widgettitle">Archives</h2> <ul>
|
||||
<li><a href='../../2017/03/index.html'>March 2017</a></li>
|
||||
<li><a href='../../2017/02/index.html'>February 2017</a></li>
|
||||
<li><a href='../../2016/11/index.html'>November 2016</a></li>
|
||||
<li><a href='../../2014/08/index.html'>August 2014</a></li>
|
||||
<li><a href='../../2014/07/index.html'>July 2014</a></li>
|
||||
<li><a href='../../2014/04/index.html'>April 2014</a></li>
|
||||
<li><a href='../../2014/02/index.html'>February 2014</a></li>
|
||||
<li><a href='../../2013/03/index.html'>March 2013</a></li>
|
||||
<li><a href='../../2013/02/index.html'>February 2013</a></li>
|
||||
<li><a href='../../2013/01/index.html'>January 2013</a></li>
|
||||
<li><a href='../../2012/12/index.html'>December 2012</a></li>
|
||||
<li><a href='../../2012/09/index.html'>September 2012</a></li>
|
||||
<li><a href='../../2012/08/index.html'>August 2012</a></li>
|
||||
<li><a href='../../2012/04/index.html'>April 2012</a></li>
|
||||
<li><a href='../../2012/03/index.html'>March 2012</a></li>
|
||||
<li><a href='../../2012/02/index.html'>February 2012</a></li>
|
||||
<li><a href='../../2012/01/index.html'>January 2012</a></li>
|
||||
<li><a href='../../2011/12/index.html'>December 2011</a></li>
|
||||
<li><a href='../../2011/11/index.html'>November 2011</a></li>
|
||||
<li><a href='../../2011/10/index.html'>October 2011</a></li>
|
||||
<li><a href='../../2011/09/index.html'>September 2011</a></li>
|
||||
<li><a href='../../2011/08/index.html'>August 2011</a></li>
|
||||
<li><a href='../../2011/07/index.html'>July 2011</a></li>
|
||||
<li><a href='../../2011/06/index.html'>June 2011</a></li>
|
||||
<li><a href='../../2011/05/index.html'>May 2011</a></li>
|
||||
<li><a href='../../2011/03/index.html'>March 2011</a></li>
|
||||
<li><a href='../../2011/02/index.html'>February 2011</a></li>
|
||||
<li><a href='../../2011/01/index.html'>January 2011</a></li>
|
||||
</ul>
|
||||
</li><li id="tag_cloud-3" class="widget widget_tag_cloud"><h2 class="widgettitle">Tags</h2><div class="tagcloud"><a href="../../tag/align/index.html" class="tag-cloud-link tag-link-256 tag-link-position-1" style="font-size: 8pt;" aria-label="align (2 items)">align</a>
|
||||
<a href="../../tag/better/index.html" class="tag-cloud-link tag-link-71 tag-link-position-2" style="font-size: 14.326923076923pt;" aria-label="better (8 items)">better</a>
|
||||
<a href="../../tag/better-listview-2/index.html" class="tag-cloud-link tag-link-31 tag-link-position-3" style="font-size: 22pt;" aria-label="better listview (32 items)">better listview</a>
|
||||
<a href="../../tag/bound/index.html" class="tag-cloud-link tag-link-85 tag-link-position-4" style="font-size: 8pt;" aria-label="bound (2 items)">bound</a>
|
||||
<a href="../../tag/child-items-in-listview/index.html" class="tag-cloud-link tag-link-57 tag-link-position-5" style="font-size: 8pt;" aria-label="child items in listview (2 items)">child items in listview</a>
|
||||
<a href="../../tag/column/index.html" class="tag-cloud-link tag-link-89 tag-link-position-6" style="font-size: 10.961538461538pt;" aria-label="column (4 items)">column</a>
|
||||
<a href="../../tag/coming-soon/index.html" class="tag-cloud-link tag-link-52 tag-link-position-7" style="font-size: 8pt;" aria-label="coming soon (2 items)">coming soon</a>
|
||||
<a href="../../tag/custom/index.html" class="tag-cloud-link tag-link-12 tag-link-position-8" style="font-size: 15pt;" aria-label="custom (9 items)">custom</a>
|
||||
<a href="../../tag/data/index.html" class="tag-cloud-link tag-link-84 tag-link-position-9" style="font-size: 8pt;" aria-label="data (2 items)">data</a>
|
||||
<a href="../../tag/databinding/index.html" class="tag-cloud-link tag-link-83 tag-link-position-10" style="font-size: 8pt;" aria-label="databinding (2 items)">databinding</a>
|
||||
<a href="../../tag/drawing/index.html" class="tag-cloud-link tag-link-161 tag-link-position-11" style="font-size: 10.961538461538pt;" aria-label="drawing (4 items)">drawing</a>
|
||||
<a href="../../tag/drawn/index.html" class="tag-cloud-link tag-link-270 tag-link-position-12" style="font-size: 9.6153846153846pt;" aria-label="drawn (3 items)">drawn</a>
|
||||
<a href="../../tag/explorer/index.html" class="tag-cloud-link tag-link-30 tag-link-position-13" style="font-size: 9.6153846153846pt;" aria-label="explorer (3 items)">explorer</a>
|
||||
<a href="../../tag/groups/index.html" class="tag-cloud-link tag-link-22 tag-link-position-14" style="font-size: 10.961538461538pt;" aria-label="groups (4 items)">groups</a>
|
||||
<a href="../../tag/header/index.html" class="tag-cloud-link tag-link-134 tag-link-position-15" style="font-size: 9.6153846153846pt;" aria-label="header (3 items)">header</a>
|
||||
<a href="../../tag/hide/index.html" class="tag-cloud-link tag-link-88 tag-link-position-16" style="font-size: 10.961538461538pt;" aria-label="hide (4 items)">hide</a>
|
||||
<a href="../../tag/hiding/index.html" class="tag-cloud-link tag-link-90 tag-link-position-17" style="font-size: 9.6153846153846pt;" aria-label="hiding (3 items)">hiding</a>
|
||||
<a href="../../tag/hierarchy/index.html" class="tag-cloud-link tag-link-24 tag-link-position-18" style="font-size: 8pt;" aria-label="hierarchy (2 items)">hierarchy</a>
|
||||
<a href="../../tag/hot/index.html" class="tag-cloud-link tag-link-106 tag-link-position-19" style="font-size: 9.6153846153846pt;" aria-label="hot (3 items)">hot</a>
|
||||
<a href="../../tag/image/index.html" class="tag-cloud-link tag-link-277 tag-link-position-20" style="font-size: 8pt;" aria-label="image (2 items)">image</a>
|
||||
<a href="../../tag/images/index.html" class="tag-cloud-link tag-link-7 tag-link-position-21" style="font-size: 9.6153846153846pt;" aria-label="images (3 items)">images</a>
|
||||
<a href="../../tag/item/index.html" class="tag-cloud-link tag-link-23 tag-link-position-22" style="font-size: 10.961538461538pt;" aria-label="item (4 items)">item</a>
|
||||
<a href="../../tag/item-hierarchy/index.html" class="tag-cloud-link tag-link-55 tag-link-position-23" style="font-size: 8pt;" aria-label="item hierarchy (2 items)">item hierarchy</a>
|
||||
<a href="../../tag/items/index.html" class="tag-cloud-link tag-link-107 tag-link-position-24" style="font-size: 17.423076923077pt;" aria-label="items (14 items)">items</a>
|
||||
<a href="../../tag/listview/index.html" class="tag-cloud-link tag-link-5 tag-link-position-25" style="font-size: 16.076923076923pt;" aria-label="listview (11 items)">listview</a>
|
||||
<a href="../../tag/load/index.html" class="tag-cloud-link tag-link-261 tag-link-position-26" style="font-size: 8pt;" aria-label="load (2 items)">load</a>
|
||||
<a href="../../tag/mouse/index.html" class="tag-cloud-link tag-link-41 tag-link-position-27" style="font-size: 8pt;" aria-label="mouse (2 items)">mouse</a>
|
||||
<a href="../../tag/multi-line/index.html" class="tag-cloud-link tag-link-82 tag-link-position-28" style="font-size: 8pt;" aria-label="multi-line (2 items)">multi-line</a>
|
||||
<a href="../../tag/multiline/index.html" class="tag-cloud-link tag-link-81 tag-link-position-29" style="font-size: 9.6153846153846pt;" aria-label="multiline (3 items)">multiline</a>
|
||||
<a href="../../tag/owner/index.html" class="tag-cloud-link tag-link-104 tag-link-position-30" style="font-size: 12.038461538462pt;" aria-label="owner (5 items)">owner</a>
|
||||
<a href="../../tag/ownerdrawn/index.html" class="tag-cloud-link tag-link-273 tag-link-position-31" style="font-size: 8pt;" aria-label="ownerdrawn (2 items)">ownerdrawn</a>
|
||||
<a href="../../tag/padding/index.html" class="tag-cloud-link tag-link-19 tag-link-position-32" style="font-size: 8pt;" aria-label="padding (2 items)">padding</a>
|
||||
<a href="../../tag/progress/index.html" class="tag-cloud-link tag-link-37 tag-link-position-33" style="font-size: 8pt;" aria-label="progress (2 items)">progress</a>
|
||||
<a href="../../tag/space/index.html" class="tag-cloud-link tag-link-240 tag-link-position-34" style="font-size: 9.6153846153846pt;" aria-label="space (3 items)">space</a>
|
||||
<a href="../../tag/spacing/index.html" class="tag-cloud-link tag-link-20 tag-link-position-35" style="font-size: 8pt;" aria-label="spacing (2 items)">spacing</a>
|
||||
<a href="../../tag/sub-item/index.html" class="tag-cloud-link tag-link-113 tag-link-position-36" style="font-size: 10.961538461538pt;" aria-label="sub-item (4 items)">sub-item</a>
|
||||
<a href="../../tag/sub-items/index.html" class="tag-cloud-link tag-link-265 tag-link-position-37" style="font-size: 8pt;" aria-label="sub-items (2 items)">sub-items</a>
|
||||
<a href="../../tag/subitem/index.html" class="tag-cloud-link tag-link-258 tag-link-position-38" style="font-size: 9.6153846153846pt;" aria-label="subitem (3 items)">subitem</a>
|
||||
<a href="../../tag/subitems/index.html" class="tag-cloud-link tag-link-266 tag-link-position-39" style="font-size: 9.6153846153846pt;" aria-label="subitems (3 items)">subitems</a>
|
||||
<a href="../../tag/thumbnails/index.html" class="tag-cloud-link tag-link-6 tag-link-position-40" style="font-size: 8pt;" aria-label="thumbnails (2 items)">thumbnails</a>
|
||||
<a href="../../tag/tree/index.html" class="tag-cloud-link tag-link-80 tag-link-position-41" style="font-size: 8pt;" aria-label="tree (2 items)">tree</a>
|
||||
<a href="../../tag/update/index.html" class="tag-cloud-link tag-link-36 tag-link-position-42" style="font-size: 8pt;" aria-label="update (2 items)">update</a>
|
||||
<a href="../../tag/whats-new/index.html" class="tag-cloud-link tag-link-32 tag-link-position-43" style="font-size: 8pt;" aria-label="what's new (2 items)">what's new</a>
|
||||
<a href="../../tag/working-on/index.html" class="tag-cloud-link tag-link-38 tag-link-position-44" style="font-size: 8pt;" aria-label="working on (2 items)">working on</a>
|
||||
<a href="../../tag/xp/index.html" class="tag-cloud-link tag-link-29 tag-link-position-45" style="font-size: 8pt;" aria-label="xp (2 items)">xp</a></div>
|
||||
</li> </ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type='text/javascript' src='../../wp-includes/js/wp-embed.min.js%3Fver=4.9.8'></script>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!--
|
||||
Performance optimized by W3 Total Cache. Learn more: https://www.w3-edge.com/products/
|
||||
|
||||
Content Delivery Network via Amazon Web Services: S3: www.componentowl.com
|
||||
|
||||
Served from: www.componentowl.com @ 2018-09-08 11:37:03 by W3 Total Cache
|
||||
-->
|
||||
Reference in New Issue
Block a user