From the book lists at Adware Report:

All information current as of 08:44:42 Pacific Time, Wednesday, 23 February 2005.

User Interfaces in C#: Windows Forms and Custom Controls

   by Matthew MacDonald

    27 September, 2002


   Usually ships in 24 hours

Click the button below to . . .

(which will add the book to your Amazon U.S.A. "Shopping Cart")

. . . or use your browser's Back button to return to the search-list page.

Editorial description(s):

Book Info
An overview of how to design elegant user interfaces the average user can understand. Provides a comprehensive examination of the user interface controls and classes in .NET. Softcover.

About the Author
Matthew MacDonald is an author, educator, and MCSD developer who has a passion for emerging technologies. He is a regular writer for developer journals such as Inside Visual Basic, ASPToday, and Hardcore Visual Studio .NET, and he’s the author of several books about programming with .NET, including User Interfaces in VB .NET: Windows Forms and Custom Controls, The Book of VB .NET, and .NET Distributed Applications. In a dimly remembered past life, he studied English literature and theoretical physics. Send e-mail to him with praise, condemnation, and everything in between, to
[email protected].

Book Description

User Interfaces in C#: Windows Forms and Custom Controls goes beyond simply covering the Windows Forms namespaces by combining a careful treatment of the API with a detailed discussion of good user-interface design principles. The combination will show you how to create the next generation of software applications using the .NET Framework. After reading User Interfaces in C#: Windows Forms and Custom Controls, you'll know how to design state-of-the-art application interfaces, as well as how to extend .NET controls, create data-binding strategies, program graphics, and much more.

This book contains the following:

Although this book isn't a reference, it does contain detailed discussions about every user interface element you'll use on a regular basis. But you won't just learn how to use .NET controls--you'll learn how and why to extend them, with owner-drawn menus, irregularly shaped forms, and custom controls tailored for specific types of data. As a developer, you need to know more than how to add a control to a window. You also need to know how to create an entire use interface framework that's scalable, flexible, and reusable.

Reader review(s):

Excellent tips & tricks for the working developer!, March 4, 2003
This is the first book I've read on .NET that provides amazingly practical examples--and there are lots! Early examples include thumbnail menus and irregular forms, and before long the book shows full-brown examples like a vector drawing app, animated text, and dockable windows. By far the best material is on using custom controls to represent specific "types" of data. For example, you can create a TreeView that "knows" its structure and provides custom methods that skip dealing with the nodes directly. Amazing! These examples alone are worth the price of the book... not to mention tips on making visual inheritance actually work in a UI design, and really useful custom controls like a directory tree that adds nodes "just-in-time" and an image browser that shows thumbnails for all the pictures in a directory (optimized using threads, BTW). The book convinced me that if you can visualize a control, you can build it in .NET. Now if there was just something like it for ASP.NET!!

There is one critique I would add. This book probably isn't for the die-hard control developer who plans to sell their own custom .NET controls. Although the book does cover control licensing, IDE support, etc, I think much more info would be needed on this subject. For example, although the book talks about using the basic control designers with your custom controls, it doesn't show you how to build a control designer from scratch for more design-time features. Maybe in a future edition?

Great blend of advice, explanation, examples, July 5, 2003
I rarely write reviews, but I had to comment on this book! Matthew MacDonald has done an excellent job putting together a readable, interesting book that gives you the basics on all .NET controls, and answers your more advanced questions. For me, it cleared up hit testing, multithreaded controls, and data binding to pictures. The TreeView/ListView discussions are much better than anything I've found in other books. I also loved the well written discussion of best practices that occurs throughout the book--the document/view architecture example with a dynamic print preview was particularly good. Now I just wish I could find a book with this much detail about the ASP.NET controls!

dodges multithreading, August 12, 2004
No detailed coverage of the Progress Bar control. Reason: so that multithreading and concurrency could be avoided. It is a common GUI programming task to allow a user to cancel a long running operation while keeping the GUI updated and responsive. However, this requires spawning off a separate thread to handle the long-running operation. That thread must also be able to communicate with the main GUI thread. This must be performed carefully but it is easily done by experienced GUI programmers. You won't get coverage of that with this book. Good luck....


Best book I've Seen on Winforms Programming, March 23, 2004
I am very tempted to give this book five stars, which I rarely do. It's that good.

I expected the usual run-through of forms and controls, but this book goes much deeper than that. Several chapters devote themselves to design issues in three-tier applications-- how to move information between a presentation layer and a business layer in an orderly, organized fashion. Since VS.Net is used so often for sloppy database front-ends, good advice has been hard to come by in this area.

So why only four stars? This book appears to be a port of an earler book covering the same issues within the context of VB.Net. That doesn't detract from the quality of its content, but the editors missed a few translations from VB to C#. These misses are pretty minor; for example, VB-style brackets are used on attributes (

Subject to those minor qualifications, I would recommend this book to anyone who wants to learn how to program WinForms, and to anyone who wants to learn how to design a proper three-tier application in C#>

Highly recommended for intermediate C# developers, March 12, 2003
Mathew did an excellent job in explaining the concepts and techniques to develop UI and custom controls in C#. The book is easy to understand and the examples are easy to follow for intermediate developer. Beside some typos, VB .NET syntax/references and mismatching of online sample code and examples in the book at some places, the book is highly recommended for intermediate C# Windows UI and control developers.

A Great Find!, January 12, 2004
After reading many articles on 3-tier architecture and never really understanding what the concept was exactly, finally a book that clears it up.

The author explains this, as well as Windows Forms and user controls in a very eloquent manner. He has a way of relaying the information in a way that is immediately grasped.

I recommend this book highly. There are a lot of Windows programming books out there for the .NET platform, some are good, but most of them only tinker around with the obvious. This one "opens the hood" and shows you the secrets of Windows desktop application programming.

One thing though... in all the books I have read on Windows programming, I have yet to come across one that explains how to save and retrieve data to disk, other than the common File Stream example or a discussion of databases. This one doesn't do any better. I had to scan many internet discussion groups to finally get my answer ... serialization with binary data..... UGH!

Why an in-depth discussion of binary serialization is not included in these books is amazing. What good is a desktop application if you can't present and save user data without database files.

Overall though, this book met my expectations, and then some.

Good overall coverage, not clear on details, February 27, 2003
Take this as a personal opinion: I needed this book for a project. It explains quite well the infrastructure, but when it comes to implementation you'll only need the source code that's online and your beloved MSDN CDs. I was expecting a clearer explanation on details, such as creating custom designers(which is a must if you're developing your own controls). The source code examples might be worth the price, therefore I don't regret this purchase... but I would have waited for some good Wrox title on this matter if I had to choose.

Better than other Windows Forms books, December 7, 2003
Much better than Windows Forms Programming with C# by Erik Brown. This book has useful object oriented GUI design information too. I highly recommend this book.

user interfaces without richTextbox control?, January 25, 2005
i still can't believe it--that anyone would write a comprehensive book on windows user interfaces and forget to mention the RichTextBox control. The author devoted 3 pages to the Textbox control, but said virtually nothing about one of the the most powerful text display controls.
As said by another reviwer, there is nothing here on threading either. This book deserves 3 stars but no more because it is incomplete.
That said, I still must commend the author for a well written book that flows from one chapter to the next.
If you must get this book, bear in mind that you will have to look elsewhere to cover the omitted areas.

Outstanding overview of WinForms development in general, October 28, 2004
I've "grown up" in programming working exclusively with the Web, and recently moved into the very unfamiliar world of desktop development. This is a fantastic piece of work that gives you a very high-level view of the major concepts and considerations you'll need when attempting to conquer the world of Windows Forms.

The book starts out with a brief discussion of some of the more visual aspects of great UI design, which, as author Matthew MacDonald describes, is as much technical as aesthetic. It then dives right into the major concepts of WinForms - forms and controls, and many of the secrets and tips on using them to create familiar, effective UIs for your apps. Examples are alternate ways of achieving drag-and-drop functionality for on-form controls, creating floating toolbars for and maintaining synchronicity in MDI apps.

It's very real, very practical, and very easy to grasp.

I was found MacDonald only mentioning certain class members for each of the controls, and the "members" tables listed in the book don't explicitly break the members down into properties, methods and events, which clouds a newbie's learning of a new set of classes and their functionality for the first time. That's about the only criticism I have with the title.

The book's finest moment is evident in what has got to be one of the best written chapters on the often-complex topic of working with data and databinding in WinForms. It's thorough, yet easy on the brain in terms of laying out how to work with binding in simple and complex environments.

The book isn't a primer on C# or on programming in general, so the code snippets are largely piecemeal, abstracted modules of much larger Windows Forms and components. But this isn't necessarily a bad thing.

{end of page}

(Page code from the SEO Tools, Toys, and Packages site)