Add Shaded Rows to ListView Details View

9 Comments »

Sometimes it can be challenging to read the Details view in a ListView, especially if the rows are long.  This article shows how to add shading to every second row to make a ListView easier to read.

ListView Shaded Rows

Read the rest of this entry »

C# Copy Folder Recursively

48 Comments »

Sadly there is no built-in function in System.IO that will copy a folder and its contents.  Following is a simple recursive algorithm that copies a folder, its sub-folders and files, creating the destination folder if needed.  For simplicity, there is no error handling; an exception will throw if anything goes wrong, such as null or invalid paths or if the destination files already exist.

Read the rest of this entry »

Show Continuous Progress with .NET ProgressBar and MarqueeAnimationSpeed

19 Comments »

For some operations such as logging on to a web site or downloading a web page, you may not know how long it will take the operation to finish.  So instead of showing a progress bar with a specified percent complete, you can set the .NET ProgressBar to cycle continuously.

ProgressBarMarquee

Read the rest of this entry »

C# Read Text File into String

9 Comments »

Here is the easiest way to read an entire text file into a C# string:

string s = System.IO.File.ReadAllText( path );

Disable the Ctrl+Tab Navigator Window in Visual Studio 2008

14 Comments »

One of the many changes in the upgrade to Visual Studio 2008 is how Ctrl+Tab switches between open documents in the IDE.  Ctrl+Tab used to show the previously viewed document.  But in VS 2008, the IDE Navigator window appears as shown below, and you must press Enter to show the previous document.  An additional Enter key doesn’t sound like a big inconvenience, but if you do this hundreds of times each day like most developers, you will quickly find the extra step irritating.  This article describes how to disable the Ctrl+Tab navigator window in Visual Studio 2008.

IDE Navigator

Read the rest of this entry »

Do Not Return Private C# Arrays

2 Comments »

Be careful when returning C# arrays that are private members of an object, as it essentially makes the array contents public, since the client can easily change the array.

Read the rest of this entry »

C# Empty Enumerator

11 Comments »

This article provides C# code for an empty enumerator.  This generic class can be used to simulate enumeration over an empty collection of any type of objects.  Here is the code:

Read the rest of this entry »

Generic Class: Duplicate Method Overloads

4 Comments »

When two overloads of a method in a generic class are the same (have identical type arguments) as a result of the generic type you specified, which method is called?

Read the rest of this entry »

Nested Generics

3 Comments »

Given two generic classes:

public class Type1<T> {}
public class Type2<T> {}

.NET allows you to specify a generic type as the type of another generic type:

Type1<Type2<int>> obj = new Type1<Type2<int>>();

Read the rest of this entry »

Multiple Generic IEnumerable

5 Comments »

It’s possible to provide multiple generic enumerators for a single class.  The trick is that clients must specify which enumerator to use.

Read the rest of this entry »

« go backkeep looking »