MSDN Magazine: Windows Forms rss

All MSDN Magazine Topics
  • CLR Inside Out: Extend Windows Forms Apps Using System.AddIn
    Mueez Siddiqui - July 2008
    See how Windows Forms applications can be adapted to use the new .NET Add-in framework (System.AddIn) this month.

  • Aero Glass: Create Special Effects With The Desktop Window Manager
    Ron Fosner - April 2007
    In this article we introduce the Desktop Window Manager, the new interface that manages how windows are rendered on the Windows Vista desktop.

  • Team System: Work Item Tracking
    Brian A. Randell - April 2007
    In this column, Brian Randell explains how to build a simple Work Item explorer and demonstrates the core operations needed to add work item support when building your own add-in.

  • { End Bracket }: Geopegging
    Joshua Trupin - April 2007
    Josh Trupin introduces geopegging--a special technique for storing GPS location data in a JPG.

  • Graphics To Go: Make A Mobile Imaging App With The .NET Compact Framework 2.0
    Rob Pierry - December 2006
    This article focuses on developing for Pocket PCs, a skill which can then be transferred to Smartphone application development.

  • Advanced Basics: TableLayoutPanels
    Ken Getz - December 2006
    This month Ken Getz writes a demo-creation system for Windows-based applications, which he calls a switchboard.

  • Data Points: RSS Feeds on a Smartphone
    John Papa - December 2006
    John Papa builds a Windows Mobile 5.0 application that reads RSS feeds and loads them into an ADO.NET DataSet.

  • Peer To Peer: Harness The Power Of P2P Communication In Windows Vista And WCF
    Justin Smith - October 2006
    P2P applications face a number of barriers preventing their wide adoption as a productivity solution. Fortunately Windows Vista improves the situation, as you’ll learn here.

  • CLR Inside Out: IronPython
    James Schementi - October 2006
    IronPython, the CLR implementation of the dynamic programming language Python is introduced this month.

  • Smart Clients: New Guidance And Tools For Building Integrated Desktop Applications
    Christian Thilmany and Jim Keane - September 2006
    Integrated Desktop is a loosely coupled hosting architecture and composite UI that runs on the desktop and is supported by a loosely coupled architecture on the back end. It collapses the number of applications a user must deal with when making decisions.

  • Cutting Edge: Context-Sensitive PictureBox Controls
    Dino Esposito - July 2006
    Great ideas are timeless. A long time ago in Microsoft Systems Journal Paul DiLascia demonstrated a neat trick to display context-sensitive tooltips floating over pictures. As the user moved the mouse over the picture, the tooltip control updated its text to reflect the name of the pointed figure.

  • Configure This: Parameterize Your Apps Using XML Configuration In The .NET Framework 2.0
    Bryan Porter - June 2006
    There are a number of ways to configure an application in the .NET Framework 2.0. This article explores the classes of the revamped System.Configuration namespace and explains how to use XML configuration files for your app configuration settings.

  • Advanced Basics: Setting Word Document Properties the Office 2007 Way
    Ken Getz - June 2006
    The last time I wrote this column (March 2006), I shared an application that allows you to update all the Microsoft® Word documents in a folder and its subfolders. Each time the application finds a document in the specified path, it updates the document properties to match those you specified in the application.

  • Mix And Match: Integrate Windows Forms Into Your MFC Applications Through C++ Interop
    Marcus Heege - May 2006


  • Analyze This: Find New Meaning In Your Ink With Tablet PC APIs In Windows Vista
    Markus Egger - May 2006


  • Basic Instincts: Resources and Localization
    Ted Pattison - May 2006
    There are two ways you can utilize resources such as strings, images, and text-based files from your Microsoft® . NET Framework-based application. You can embed them directly in the app or you can load them from an external file.

  • Managed Spy: Deliver The Power Of Spy++ To Windows Forms With Our New Tool
    Benjamin Wulfe - April 2006
    Spy++ displays Win32 information such as window classes, styles, and messages. Now you can get that same functionality for managed code using our ManagedSpy. Get it here.

  • Winning Forms: Practical Tips For Boosting The Performance Of Windows Forms Apps
    Milena Salman - March 2006
    This article discusses techniques you can use to ensure that Windows Forms-based apps provide optimal performance to match the rich UI responsiveness they're known to provide.

  • Text Rendering: Build World-Ready Apps Using Complex Scripts In Windows Forms Controls
    Miguel A. Lacouture - March 2006
    The System.Windows.Forms.TextRenderer class provides support for complex scripts in Windows Forms controls so you can render text the way you want and support international locales.

  • Office Unbound: Bring Your Documents To Life With Data Binding In Visual Studio Tools For Office
    Eric Carter and Eric Lippert - March 2006
    Thanks to Visual Studio 2005 Tools for the Microsoft Office System, Windows Forms controls can be bound to databases, Web services, or objects and added to a workbook or document. Find out how.

  • The Perfect Host: Create And Host Custom Designers With The .NET Framework 2.0
    Dinesh Chandnani - March 2006
    The .NET Framework 2.0 introduces a set of classes that can be used to host designers right out of the box. With the understanding of designers you'll glean from this article, you'll be ready to host them in your own apps.

  • Advanced Basics: Set Word Document Properties Programmatically
    Ken Getz - March 2006
    At the beginning of another lovely day of writing courseware in mad pursuit of unrealistic deadlines, I received a frantic call from a business partner. He was at the end of a long consulting project and had several hundred Microsoft® Word documents, all of which required their document properties to be set identically, except the Title property of the document, which was to be based on the document file name, minus the .

  • Cutting Edge: Windows Workflow Foundation
    Dino Esposito - March 2006
    In the January 2006 issue, Don Box and Dharma Shukla introduced Windows® Workflow Foundation and discussed the overall architecture of the framework and its constituent components (see WinFX Workflow: Simplify Development With The Declarative Model Of Windows Workflow Foundation).

  • Smart Clients: Build A Windows Forms Control To Consume And Render WSRP Portlets
    Carl Nolan - February 2006
    Smart client apps use local resources, provide a rich client experience, and support intelligent install mechanisms. Web services offer powerful interoperability and integration features. Find out how to combine them to develop integrated apps that incorporate data from disconnected sources.

  • Cutting Edge: Build Providers for Windows Forms
    Dino Esposito - February 2006
    In ASP. NET and Windows Forms projects, some file types are treated differently than others. For example, ASPX and ASCX files are dynamically parsed and compiled to an assembly on the fly. The contents of an XML Schema Definition (XSD) file are used to create a new, strongly typed DataSet-based object at design time.

  • Dev Q&A: DataGridView
    Edited by Nancy Michell - January 2006
    After receiving a late-breaking news bulletin at magazine headquarters early this month stating that the Web is just a fad that will never amount to anything, we have reluctantly decided to retire our venerable Web Q&A column and replace it with one we like to call Dev Q&A.

  • Advanced Basics: The Sound of Music
    Brad McCabe - January 2006
    So you've got a burning desire to accompany your application's splash screen with a rousing chorus of "Funky Cold Medina" (that's Tone Loc for those of you who aren't children of the 80s). Prior to working with Visual Studio® 2005, adding even simple tunes and system sounds to your application could be a challenge.

  • Security Briefs: Encrypting Without Secrets
    Keith Brown - January 2006
    Do you have a Web site or other system that deals in secrets of any sort? It seems like every time I give a security talk, people ask how to deal with the sticky problem of storing secrets. Connection strings with passwords are an obvious problem.

  • Visual Basic: Navigate The .NET Framework And Your Projects With The My Namespace
    Duncan Mackenzie - Visual Studio 2005 Guided Tour 2006
    The My Namespace is best described as a speed-dial for the .NET Framework. It provides an intuitive navigation hierarchy that exposes existing .NET functionality through easily understood root objects. Here Duncan Mackenzie explains it all.

  • Power to the Pen: The Pen is Mightier with GDI+ and the Tablet PC Real-Time Stylus
    Charles Petzold - December 2005


  • UI on the Fly: Use the .NET Framework to Generate and Execute Custom Controls at Run Time
    Morgan Skinner - December 2005
    Creating UI controls on the fly can be accomplished via run-time code generation. And there are lots of reasons to do so. Generating these controls once and then reusing them as needed is more efficient than generating the controls each time. Read on.

  • Advanced Basics: What's My IP Address?
    Ken Getz - December 2005
    If you're like me, you regularly do tech-support for family, friends, and neighbors. You can't go to a party without hearing the familiar refrain: "I've just got a quick question. " It's always something—their Internet connections get dropped, they've got a virus, they can't install some piece of hardware, or some file has gone missing.

  • Advanced Basics: A Match-Making Game in Visual Basic
    Duncan Mackenzie - October 2005
    My four-year-old son has decided that he wants to be like his dad when he grows up. He is planning to work in my office, and write computer programs just like I do. But there is one problem—he thinks I write games.

  • Spice It Up: Sprinkle Some Pizzazz on Your Plain Vanilla Windows Forms Apps
    Bill Wagner - September 2005
    With the .NET Framework and GDI+, you can easily add elements of style to your applications. You can use transparency, irregularly shaped windows, notification icons, toast pop-ups, different color schemes, and lots more. Designed well, these techniques can create much more compelling interactions between your application and your users. This article explains how.

  • Test Run: Low-Level UI Test Automation
    James McCaffrey - September 2005
    There are several ways to test a Windows®-based application through its user interface. For example, in the January 2005 issue of MSDN®Magazine (Test Run: Lightweight UI Test Automation with . NET) I described a lightweight technique for testing .

  • .NET Matters: Stream Decorator, Single-Instance Apps
    Stephen Toub - September 2005


  • Easy UI Testing: Isolate Your UI Code Before It Invades Your Business Layer
    Mark Seemann - August 2005
    The User Interface Process Application Block (UIP) from the Microsoft Patterns & Practices team can help you isolate your UI, write unit tests for your UI logic, and write a UI that really is the thin layer it was always meant to be. Mark Seemann shows you how it's done in this article.

  • Smart Tags: Simplify UI Development with Custom Designer Actions in Visual Studio
    Michael Weinhardt - July 2005
    Windows Forms 2.0 components expose smart tags by utilizing Designer Actions. By taking advantage of this feature, you can add smart tags to your own custom components to make setting their properties and other actions much easier and developer-friendly.

  • Advanced Basics: Creating A Breadcrumb Control
    Duncan Mackenzie - July 2005
    Hansel and Gretel had the right idea when "they followed the pebbles that glistened there like newly minted coins, showing them the way. " The deeper you get into the forest or into your data, the more likely you are going to need help to find your way back out again.

  • Draft a Rich UI: Ground Rules for Building Enhanced Windows Forms Support into Your .NET App
    Michael Weinhardt and Chris Sells - May 2005
    In this article, the winning Windows Forms duo of Chris Sells and Michael Weinhardt team up again to explore lots of new features and additions to Windows Forms 2.0 that will let you build more flexible, feature-rich controls, get better resource management, more powerful data-binding abilities, and make your development life a whole lot more fun.

  • .NET Matters: ICustomTypeDescriptor, Part 2
    Stephen Toub - May 2005
    In last month's . NET Matters column, I answered a question concerning the PropertyGrid control, specifically about using it with classes that expose fields instead of properties. I demonstrated how the ICustomTypeDescriptor interface in the Microsoft® .

  • Security: Unify Windows Forms and ASP.NET Providers for Credentials Management
    Juval Lowy - April 2005
    The .NET Framework 2.0 provides custom credentials management to ASP.NET apps out of the box. Using it, you can easily authenticate users without using Windows accounts. In this article the author presents a set of helper classes that let a Windows Forms application use the ASP.NET credentials management infrastructure as easily as if it were an ASP.NET application.

  • Cutting Edge: A New Grid Control in Windows Forms
    Dino Esposito - April 2005
    Grid controls are essential in many of today's apps. Until now, though, most developers using Visual Basic® have had to buy third-party components to get an effective, easy to use grid component. The Windows® Forms DataGrid turned out to lack too many features for the average developer.

  • .NET Matters: ICustomTypeDescriptor, Part 1
    Stephen Toub - April 2005


  • Advanced Basics: Doing Async the Easy Way
    Ken Getz - March 2005
    If you've been following Ted Pattison's excellent series of Basic Instincts columns on multithreading and asynchronous behavior, you should by now be an expert on handling the issues involved in working with multiple threads in Windows®-based apps.

  • Advanced Basics: Creating a Five-Star Rating Control
    Duncan Mackenzie - January 2005
    I have to admit it; most of my Windows® Forms controls are an attempt to copy something that already exists. In my October 2004 column I showed you how to create a progress bar that mimicked the one shown during the Windows XP setup routine, and this month I'm at it again.

  • Test Run: Lightweight UI Test Automation with .NET
    James McCaffrey - January 2005
    Manual user interface testing is one of the most fundamental types of software testing and it's the kind of testing that most software engineers first experience. Paradoxically, automated user interface tests are probably the most technically challenging kind of test to write.

  • Tablet PC: Add Support for Digital Ink to Your Windows Applications
    Paul Yao - December 2004
    Check out the cool new features in Windows XP Tablet PC Edition, including a number of Ink types, and ink that's stored as ink. Here Paul Yao takes you on a tour of everything you need to know to get started.

  • Mobility: Optimize Your Pocket PC Development with the .NET Compact Framework
    Dave Edson and John Socha-Leialoha - December 2004
    The .NET Compact Framework can be used to write great code and great applications. As long as you take a few things into consideration and are willing to bend a rule or two, you can have your performance cake and eat it too. In this article the authors present some neat tricks to make life as a programmer easier when using the .NET Compact Framework. Later they discuss techniques to increase performance, and decrease both load time and memory footprints. Sample code is provided.

  • .NET Internals: Tailor Your Application by Building a Custom Forms Designer with .NET
    Sayed Y. Hashimi - December 2004
    The design-time architecture of Windows Forms in the .NET Framework has made development much more flexible than it had been with MFC. With Windows Forms, you can drag one of your custom controls from the toolbox and drop it onto the Visual Studio design surface and even though Windows Forms knows nothing about the control, it's able to host it and let you manipulate its properties—not possible in MFC. In this article, the author discusses what's going on under the covers as you design your forms and then walks through the creation of a bare-bones forms designer.

  • Advanced Basics: Digital Grandma
    Duncan Mackenzie - November 2004
    As a parent of a young child, I take a lot of pictures—many more than anyone would ever be interested in seeing. Well, anyone except my mother. This is her first grandchild and the one or two pictures I send to her each week only brush the surface of her grandmotherly needs.

  • Advanced Basics: Building a Progress Bar that Doesn't Progress
    Duncan Mackenzie - October 2004
    In many situations, accurately estimating the length of a certain process (copying a large file, loading data from a server, retrieving files from the Internet) would be both difficult and inefficient.

  • Security Briefs: Password Minder Internals
    Keith Brown - October 2004
    In my last column I introduced Password Minder, the tool I use to manage all of my passwords. It generates a long, random password for each site I visit, and makes it possible for me to use the most complex passwords possible, without ever having to see the actual password material or type it in manually.

  • Genetic Algorithms: Survival of the Fittest: Natural Selection with Windows Forms
    Brian Connolly - August 2004
    Genetic Programming is an evolutionary algorithm that employs reproduction and natural selection to breed better and better executable computer programs. It can create programs that implement subtle, non-intuitive solutions to complex problems. By taking a well-known example from the Genetic Programming community and implementing it with the .NET Framework, this article demonstrates that CodeDOM and Reflection provide all the facilities that are needed to do Genetic Programming effectively.

  • Advanced Basics: P2P Comm Using Web Services
    Carl Franklin - August 2004
    Iwanted to use my first Advanced Basics column as an opportunity to strike out into new territory, to do something I haven't seen extolled much in the literature, so I've built a Windows® Forms chat program that uses Web services to communicate with other peers.

  • Test Run: Using Combinations to Improve Your Software Test Case Generation
    James McCaffrey - July 2004


  • Visual Basic: Navigate the .NET Framework and Your Projects with "My"
    Duncan Mackenzie - May 2004
    The next version of Visual Basic, Visual Basic 2005, will include some powerful new features. One of the most interesting is the My language extensions: My.Application, My.Computer, My.Forms, My.Resources, My.Settings, My.User, and My.WebServices. The My language extensions take the idea of helper functions to a whole new level because they include so much functionality out of the box. Called "a speed-dial for the .NET Framework" by the author, the My extensions are a feature you won't want to overlook.

  • .NET Framework 2.0: Craft a Rich UI for Your .NET App with Enhanced Windows Forms Support
    Michael Weinhardt and Chris Sells - May 2004
    The upcoming version of the .NET Framework offers a host of enhancements an order of magnitude over and above existing versions. In particular, developers writing Windows Forms benefit from a variety of new and improved features targeting development, deployment, increased productivity, and auto-generated code. This article covers some of the key new features including designer enhancements, new controls, data binding, and deployment to give you a taste of what's to come.

  • ClickOnce: Deploy and Update Your Smart Client Projects Using a Central Server
    Brian Noyes - May 2004
    ClickOnce is a new deployment technology that allows users to download and execute Windows-based client applications over the Web, a network share, or from a local disk. Users get the rich interactive and stateful experience of Windows Forms, but still have the ease of deployment and updates available to Web applications. ClickOnce applications can be run offline and support a variety of automatic and manual update scenarios.Learn all about it here.

  • Advanced Basics: Create a Graphical Editor Using RichTextBox and GDI+
    Ken Spencer - May 2004


  • Basic Instincts: Updating the UI from a Secondary Thread
    Ted Pattison - May 2004


  • Stress Testing: Custom LoadGenerator Tool Identifies the Issues Your Application Faces Under Stress
    Brian Otto - April 2004
    It's easy to postpone stress testing when developing an application, and it's easy to forgo it altogether. Having an easy-to-use framework at your fingertips to conduct these tests can make the task far less painful. This article walks you through an application that eases the task of generating load for a variety of layers within an application.

  • Advanced Basics: Synchronizing Multiple Windows Forms
    Ken Spencer - April 2004


  • .NET Matters: Const in C#, Exception Filters, IWin32Window, and More
    Stephen Toub - April 2004
    Welcome to . NET Matters. This new column will delve into the ins and outs of the Microsoft® . NET Framework, answering readers' questions on various topics related to its extensive libraries, languages, and the common language runtime.

  • Bugslayer: .NET Internationalization Utilities
    John Robbins - April 2004
    As you saw in last month's column, . NET internationalization support is excellent and allows you to move your application to a world audience quite easily. Before you jump into this month's discussion, you may want to go back and read the March column.

  • Advanced Basics: Extracting Data from .NET Assemblies
    Ken Spencer - March 2004


  • Standard I/O: Console Appplications in .NET, or Teaching a New Dog Old Tricks
    Michael Brook - February 2004
    The Microsoft .NET Framework is not just about Windows Forms and Web services. This article discusses the simplest kind of Framework-based application—the console app—along with the frequently overlooked constructs of standard input/output and the pipe. When designed carefully, console applications offer a surprisingly powerful way of solving complex programming problems. One of the more exciting aspects of this approach is that while each application in the pipe is fairly simple, the result of their interaction can be a relatively complex task. Here the author explores the ins and outs of writing these console apps.

  • Timers: Comparing the Timer Classes in the .NET Framework Class Library
    Alex Calvo - February 2004
    Timers often play an important role in both client applications and server-based components (including Windows services). Writing effective timer-driven managed code requires a clear understanding of program flow and the subtleties of the .NET threading model. The .NET Framework Class Library provides three different timer classes: System.Windows.Forms.Timer, System.Timers.Timer, and System.Threading.Timer. Each of these classes has been designed and optimized for use in different situations. This article examines the three timer classes and helps you gain an understanding of how and when each class should be used.

  • Cutting Edge: Owner-Drawing in .NET
    Dino Esposito - February 2004


  • Advanced Basics: Windows Forms Controls: Z-order and Copying Collections
    Ken Spencer - January 2004


  • .NET Column: Practical Multithreading for Client Apps
    Jason Clark - January 2004


  • Office 2003: Host an Interactive Visio Drawing Surface in .NET Custom Clients
    Mai-lan Tomsen Bukovec and Blair Shaw - December 2003
    Microsoft Office Visio 2003 introduces a new drawing component that allows you to embed an interactive drawing surface into your application's user interface. You can drive the Visio drawing component from events in your host application or with data from a Web Service and an ADO.NET data adapter. The Visio drawing component supports the rich Visio application programming model, giving you control over how graphics are used and displayed on the drawing surface. This article explains how to embed the Visio drawing component into a C#-based Windows Forms client app that retrieves data from the Fabrikam 2.0 Web Service.

  • Cutting Edge: Custom Design-time Control Features in Visual Studio .NET
    Dino Esposito - December 2003


  • Advanced Basics: Windows Forms Q&A
    Ken Spencer - December 2003


  • C++ Q&A: Docking the Menu Bar, Abstract Classes vs. Interfaces, and More
    Paul DiLascia - December 2003


  • Cutting Edge: Custom Provider Controls
    Dino Esposito - November 2003


  • Advanced Basics: SQL Server Metadata
    Ken Spencer - November 2003


  • Tablet PC: Achieve the Illusion of Handwriting on Paper When Using the Managed INK API
    Carlos C. Tapang - October 2003
    Creating the illusion of a pen writing on paper is no easy software task. Fortunately, the .NET Framework hosts Tablet PC extensions, which lets you create ink-aware applications for the Tablet PC. This API allows applications to draw strokes on the screen and perform a variety of tasks including document markup, storage, and transmission.This article shows you how to handle a couple of inking events as used in the InkClipboard sample. Later, it discusses how to avoid common pitfalls including too frequent redrawing, which causes the ink flow to lag behind the pen movements, diminishing the illusion of ink on paper.

  • Data Points: Exploring the ADO.NET DataRow
    John Papa - October 2003


  • Advanced Basics: Enterprise Services, SQL Script Editing
    Ken Spencer - October 2003


  • Cutting Edge: Managing Your Remote Windows Clipboard
    Dino Esposito - September 2003


  • The XML Files: Introducing the Web Services Enhancements 2.0 Messaging API
    Aaron Skonnard - September 2003


  • Advanced Basics: Creating Text Images On the Fly with GDI+
    Ken Spencer - September 2003


  • DataGrid: Tailor Your DataGrid Apps Using Table Style and Custom Column Style Objects
    Kristy Saunders - August 2003
    One of the most enduring challenges in writing user interfaces is figuring out how to display large amounts of data efficiently and intuitively without bewildering the user. The problem becomes particularly thorny when the interface must reflect hierarchical relationships within the data that the user needs to modify. The Windows Forms DataGrid control gives developers a powerful and flexible tool to meet this challenge. This article explains its basic operations and shows how to extend the DataGrid to display columns of data in an application-appropriate manner.

  • Cutting Edge: Creating a Multi-table DataGrid in ASP.NET
    Dino Esposito - August 2003
    If you bind a multi-table DataSet to a DataGrid, only the first table is recognized. Here Dino Esposito writes a custom solution the the multi-table problem.

  • Advanced Basics: Data Binding in Visual Basic .NET
    Ken Spencer - August 2003
    Ken Spencer introduces data binding in Visual Basic .NET.

  • GDI+: A Primer on Building a Color Picker User Control with GDI+ in Visual Basic .NET or C#
    Ken Getz - July 2003
    Although most developers and APIs use the RGB scheme when working with colors, it's not the only available way to represent or select colors. For instance, the standard Windows color-selection dialog box allows you to work with the HSL color scheme in an indirect way. In this article, the author describes several color selection schemes, and uses GDI+ (via the System.Drawing namespace) to create a component that makes it possible for your own applications to provide a simpler, friendlier color chooser. Along the way, you'll get tips to help you use GDI+ in your own apps.

  • Cutting Edge: Working with Images in the .NET Framework
    Dino Esposito - July 2003


  • Advanced Basics: Adding New Features with User Controls
    Ken Spencer - June 2003
    In past versions of Visual Basic, there were rudimentary graphics controls. In Visual Basic .NET you have the GDI+ library, which enables you to draw lines, circles, and most anything else. But how can you use the functionality of GDI+ to create lines and other graphics that respond to user mouse clicks and events? Find out.

  • Visual Studio .NET: Building Windows Forms Controls and Components with Rich Design-Time Features, Part 2
    Michael Weinhardt and Chris Sells - May 2003
    This is the second of two articles discussing the extremely rich design-time features of the .NET Framework. Part 1 discussed the basics, showing you where to start and how to extend your control implementation through attributes and interfaces, as well as their effects on the property browser, code serialization, and other controls. Part 2 continues the journey by concentrating on design-time functionality that you can implement beyond your components and controls, including TypeConverters, UITypeEditors, and Designers. It would be impossible to cover everything you can do in two short articles, which is a testament to just how all-encompassing and flexible the design-time capability of the .NET Framework is.

  • Advanced Basics: Windows Forms Controls
    Ken Spencer - May 2003
    Build a control that allows the user to drag and drop other controls onto the new control at run time, and allow the user to move the control around on a form, all in Visual Basic.

  • Visual Studio .NET: Building Windows Forms Controls and Components with Rich Design-Time Features
    Michael Weinhardt and Chris Sells - April 2003
    Visual Studio .NET provides support for designing rich features into your controls and components, allowing you to set properties, set form placement, inherit from base classes, and much more. So how does Visual Studio .NET do all this? What does the Windows Forms designer do? What's the difference between a control and a component? How does Visual Studio integrate your controls so that they can access features of the .NET Framework?In this article, the authors answer these common questions by building a clock control and taking the reader along for the ride. In building the control, hosts and containers are illustrated, the property browser is explained, debugging is discussed, and a general overview of the design-time infrastructure is presented.

  • Cutting Edge: MyTracer Monitors and Traces ASP.NET Apps
    Dino Esposito - April 2003
    The Microsoft® . NET Framework comes with a rich set of programming tools for debugging and tracing applications. I'm not talking about integrated debuggers; I'm referring to software components that you use in the development cycle.

  • C++ Q&A: Desktop Location, sscanf Equivalents in C#, and More
    Paul DiLascia - April 2003


  • Visual C++ .NET: Language Enhancements and Simplified GUI Development Enrich Your C++ Apps
    Richard Grimes - March 2003
    Managed Extensions for C++ is the preferred programming language for developing Windows Services. Visual Studio .NET 2003 introduces C++ support for designers, providing all the RAD facilities that were available to other languages for developing forms, controls, components, and DataSets. Furthermore, support has been added for the creation of verifiable assemblies with C++.In this article, the author reviews these additions as well as the new compiler and linker switches, demonstrating how C++ remains the premier systems language while becoming a powerful tool for .NET GUI development as well.

  • Windows Forms: .NET Framework 1.1 Provides Expanded Namespace, Security, and Language Support for Your Projects
    Chris Sells - March 2003
    With the much-anticipated release of the .NET Framework 1.1, developers are eager to know what's been added to their programming bag of tricks. In this article, the author focuses on new developments in Windows Forms, such as namespace additions, support for hosting managed controls in unmanaged clients, and designer support for C++ and J#. Integrated access to the Compact Framework and new mobile code security settings also make this release noteworthy. Along with these features, the author reviews the best ways to handle multiple versions of the common language runtime and highlights some potential pitfalls.

  • Cutting Edge: Customize Your Open File Dialog
    Dino Esposito - March 2003
    Displaying an Open File dialog is certainly easy in the Microsoft® . NET Framework with Windows® Forms, but the resulting window is not as customizable as when you create it through the Win32® API. With Windows 2000, Microsoft added a nice feature—the places bar, which is the vertical toolbar that appears on the left side of the window to let you select a frequently visited folder.

  • Advanced Basics: Handling Null Values with Controls
    Ken Spencer - March 2003


  • C++ Q&A: Find Icons, Launch an App from List Control, and More
    Paul DiLascia - March 2003


  • Class Templates: Bring the Power of Templates to Your .NET Applications with the CodeDOM Namespace
    Adam J. Steinert - February 2003
    In the .NET Framework, the CodeDOM object model can represent code in a variety of languages. This article examines how source code templates written with the Framework's System.CodeDom and System.CodeDom.Compiler namespaces allow developers to create reusable boilerplate source code that can be shared between projects. Components designed via templates improve productivity and shorten development time.Here C++-style classes and templates are simulated and code is generated in multiple languages through the creation of CodeDOM object graphs. Compiling object graphs and formatting output code are also explained.

  • BITS: Write Auto-Updating Apps with .NET and the Background Intelligent Transfer Service API
    Jason Clark - February 2003
    Both the .NET Framework and Windows have some very interesting APIs for creating applications that are capable of updating themselves automatically over a network. There are many advantages to writing your application to update itself like Windows Update does, including convenience for your users, from easier maintenance to network administration. Automatic updates require attention to factors such as discovery, security, and file replacement. In this article, the author covers the BITS API as well as a number of features of the .NET Framework that take care of these facets of auto-updating using the same facilities that the Windows Update uses.

  • Printing: Preview and Print from Your Windows Forms App with the .NET Printing Namespace
    Alex Calvo - February 2003
    Printing is an integral part of every complete Windows-based application. Providing robust printing capabilities in these applications has often proved to be a tedious chore. Now, printing from Windows Forms with the .NET Framework means you must adopt a document-centric approach, resulting in cleaner and more manageable code. While the System.Windows.Forms namespace provides seamless integration with all the standard print dialogs (such as Print Preview, Page Setup, and Print), the System.Drawing.Printing namespace offers numerous classes for extensibility and customization. These classes, and how they provide access to printing capabilities, are covered here. Other useful techniques, such as printing in the background to allow the user to continue other tasks, is also explained.

  • Windows Forms: Give Your .NET-based Application a Fast and Responsive UI with Multiple Threads
    Ian Griffiths - February 2003
    If your application performs any non-UI processing on the thread that controls the user interface, it may make the app seem slow and sluggish, frustrating users. But writing multithreaded apps for Windows has long been restricted to C++ developers. Now with the .NET Framework, you can take advantage of multiple threads in C# to control the flow of instructions in your programs and isolate the UI thread for a fast and snappy user interface. This article shows you how. Also, it discusses the pitfalls of multiple threads and presents a framework for safe concurrent thread execution.

  • Web-Aware Apps: Build Hyperlinks into Your Client App with the Windows Forms LinkLabel Control
    Dan Hurwitz - February 2003
    LinkLabels are Windows Forms controls that enable a user to hyperlink to a URL that points to either the Web or the local directory system. While the SDK documentation discusses the control, it does not demonstrate how linking is accomplished, nor does it outline the power and flexibility the control provides. This article fills those gaps, showing how to link using the LinkLabel control. It also shows the flexibility of this control for the programmer using the .NET Framework. In addition, the author covers the large number of properties that allow you to customize your controls and accurately place them. Their built-in behaviors are also discussed, along with their use in both Visual Basic .NET and C#.

  • Web Q&A: Data Shredding, Updating the Status Bar, and More
    Edited by Nancy Michell - February 2003


  • .NET GUI Bliss: Streamline Your Code and Simplify Localization Using an XML-Based GUI Language Parser
    Paul DiLascia - November 2002
    While Windows Forms in .NET has lots of cool features, if you're used to MFC, there are a couple of things you'll find missing, like doc/view, command routing, and UI update. The .NET answer to this is a code generator that writes new code for every single element. But there's a better way. In this article, Paul DiLascia shows how to develop an XML-based GUI language parser for .NET that lets you code resources, menus, toolbars, and status bars in XML instead of with procedural code. He also shows how a user interface based on XML can easily be localized using standard .NET techniques, and introduces his very own library, MotLib.NET, with lots of GUI goodies for your programming pleasure.

  • .NET Remoting: Design and Develop Seamless Distributed Applications for the Common Language Runtime
    Dino Esposito - October 2002
    Prior to the advent of .NET, DCOM was the underlying technology for remote communications between Windows-based applications. But DCOM is quirky to set up and configure and not as interoperable as it should be. In .NET, XML Web Services and .NET Remoting are a seamless and effective answer to the demand for tools to build distributed applications.This article provides a primer on .NET Remoting with insights into the internal plumbing. Important aspects of remoting, such as channels, object lifetime management, and clients for remote objects are discussed. In addition, some practical examples are provided.

  • Serial Comm: Use P/Invoke to Develop a .NET Base Class Library for Serial Device Communications
    John Hind - October 2002
    Out-of-the-box, the only way of coding RS232 serial communications applications in the .NET environment is to import the outdated and somewhat limited MSComm ActiveX control. This article describes the development of a lean, multithreaded, and modern RS232 base class library in C# managed code. The library uses Platform Invocation Services to interact with the Win32 API directly. Application programmers can use the library from any .NET language through inheritance; the article explores examples written in C# and Visual Basic .NET.

  • Command Management: Use Design Patterns to Simplify the Relationship Between Menus and Form Elements in .NET
    Michael Foster and Gilberto Araya - October 2002
    In Windows Forms applications, similar commands, such as those in a menu and their counterparts on a toolbar, are not automatically related. They don't fire the same event or run the same handler routine. Yet code that allows the same or similar user commands to fire the same code simplifies development.This article describes the principles of command management and why it's important to have functional commands that are not exclusive to any one UI element. In order to provide an MFC-like command management infrastructure, a design pattern is developed and applied as a series of C# classes.

  • Spider in .NET: Crawl Web Sites and Catalog Info to Any Data Store with ADO.NET and Visual Basic .NET
    Mark Gerlach - October 2002
    Visual Basic .NET comes loaded with features not available in previous versions, including a new threading model, custom class creation, and data streaming. Learn how to take advantage of these features with an application that is designed to extract information from Web pages for indexing purposes. This article also discusses basic database access, file I/O, extending classes for objects, and the use of opacity and transparency in forms.

  • Advanced Basics: Building an Attribute Documenter and Viewer
    Ken Spencer - October 2002


  • Advanced Basics: Reducing Memory Footprints, Gathering Process Info with MSDNMagProcessMonitor
    Ken Spencer - September 2002


  • Scripting and .NET: Visual Studio for Applications Provides Customized Scripting Facilities for Your .NET Project
    Chris Sells - August 2002
    In the past, the Microsoft Active Scripting architecture has allowed you to make your applications extensible. But it came with some drawbacks. You couldn't call into DLLs; you had to use COM interfaces. The scripts were not compiled, so they ran more slowly than they otherwise might, and a number of objects had to ride along with the script. To solve these problems and make extensibility easier to attain, Visual Studio for Applications was introduced. Presented here is an introduction to VSA that covers language support, types, events, and much more.

  • Advanced Basics: Best Practices for Windows Forms Applications
    Ken Spencer - August 2002


  • .NET Zero Deployment: Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients
    Chris Sells - July 2002
    Windows Forms applications solve many of the problems inherent in building Web applications the old fashioned way?with HTML. To demonstrate the use of Windows Forms over the Web, the author takes his existing app, Wahoo!, and ports it to Windows Forms. In doing so, he discusses versioning, linked files, security, storage isolation, the deployment model, and everything else you need to get started building your own Windows Forms apps for the Web.

  • Cutting Edge: Designing Extensible Windows Forms Applications
    Dino Esposito - July 2002


  • Go International!: Let Your Apps Span the Globe with Windows Forms and Visual Studio .NET
    Jason R. Bell - June 2002
    How would an English speaker feel if his car's owner's manual was written in German or if the dash board markings were written in Japanese because the car was manufactured in that country? This is an experience common to computer users all over the world who don't speak English as their primary language, and it's becomming more important. The Microsoft .NET Framework not only makes it possible to build international applications, but many of the tools such as Visual Studio .NET make it quite easy. This article looks at internationalization with .NET and presents real tools you can use to make all of your Windows Forms applications global-ready.

  • Return of the Rich Client: Code Access Security and Distribution Features in .NET Enhance Client-Side Apps
    Jason Clark - June 2002
    Rich clients employ many of the features and conveniences of the operating system they run on, and the list of these features has been growing since the dawn of the PC. But as apps have migrated to the Web, the trend towards increasing client-side functionality has ground to a virtual halt. There are several reasons for this; chief among them are security and deployment problems. But that's all about to change. With the .NET Framework, you can participate in building the distributable rich client of the future. In this article, the author enumerates the pertinent features of .NET that will allow you to build safe, easily deployable controls. The features discussed include managed code, code access security, versioning control, Windows Forms classes, and isolation.

  • Advanced Basics: How to Use Objects
    Ken Spencer - June 2002


  • Advanced Basics: Handling Transactions Between .NET Components
    Ken Spencer - May 2002


  • Windows Forms: Developing Compelling User Controls that Target Forms in the .NET Framework
    David S. Platt - April 2002
    In the beginning, writing controls meant dealing with Windows messages. Then came Visual Basic controls, which introduced methods, properties, and events. Later, ActiveX controls, which ran atop COM, became popular. While each innovation in control writing brought more flexibility, nothing has matched the versatility of the new .NET Windows Forms controls and Web Forms controls. This article, the first of a two-part series, introduces the reader to Windows Forms, beginning with their inheritance from one of the .NET CLR base classes, which makes control creation much faster than before. Control programming is illustrated through the development of a login control. The equally flexible Web Forms controls will be covered in Part 2.

  • Windows CE: Develop Handheld Apps for the .NET Compact Framework with Visual Studio .NET
    Larry Roof - March 2002
    Smart Device Extensions (SDE) for Visual Studio .NET allow programmers to develop applications for the .NET Compact Framework, a new platform that maintains many of the features of the .NET Framework in a version optimized for handheld devices. This article shows how SDE provides access through Visual Studio .NET to a variety of .NET classes for devices running Windows CE, including classes for creating user interfaces. Data access classes and Web Services for the .NET Compact Framework are also explained. Following that overview, a sample Web Service called XMLList is built. Then the UI-the XMLList client-side application-is created.

  • Data Points: Establishing Relationships Between Rowsets with ADO.NET
    John Papa - February 2002


  • Cutting Edge: Data Binding Between Controls in Windows Forms
    Dino Esposito - February 2002


  • DHTML and .NET: Host Secure, Lightweight Client-Side Controls in Microsoft Internet Explorer
    Jay Allen - January 2002
    In the past, Web developers often used ActiveX controls if they wanted customized client-side functionality incorporated into their Web applications. Now, they can build objects supported by the Microsoft .NET Framework which are more compact, lightweight, secure, and seamlessly integrated. By hosting .NET Windows Forms controls in Internet Explorer, developers can realize many of their client-side Web development goals. This article adapts ActiveX concepts for use with Windows Forms, and builds a multifile upload application that demonstrates these techniques.

  • Under the Hood: TypeRefViewer Utility Shows TypeRefs and MemberRefs in One Convenient GUI
    Matt Pietrek - November 2001


  • Advanced Basics: Using Inheritance in Windows Forms Applications
    Ken Spencer - June 2001


  • Serving the Web: Windows Forms in Visual Basic .NET
    Ken Spencer - April 2001


  • Wicked Code: CityView App: Build Web Service Clients Quickly and Easily with C#
    Jeff Prosise - April 2001


  • Windows Forms: A Modern-Day Programming Model for Writing GUI Applications
    Jeff Prosise - February 2001
    To write GUI applications for Microsoft .NET you'll use Windows Forms. Windows Forms are a new style of application built around classes in the .NET Framework class library's System.WinForms namespace. They have a programming model all their own that is cleaner, more robust, and more consistent than models based on the Win32 API or MFC, and they run in the managed environment of the .NET Common Language Runtime (CLR). This article details what Windows Forms are all about, from the programming model to Microsoft Intermediate Language and the JIT compiler. Two applications using forms, event handlers, anchors and persistence are built step by step.

  • Web Services: Building Reusable Web Components with SOAP and ASP.NET
    David S. Platt - February 2001
    XML and HTTP are cross-platform technologies especially suited for building applications that can communicate with each other over the Internet, regardless of the platform they are running on. Web Services in the Microsoft .NET Framework make it easy to write components that communicate using HTTP GET, HTTP POST, and SOAP. An understanding of these concepts, along with knowledge of synchronous and asynchronous operations, security, state management, and the management of proxies by the .NET Framework is essential in building these applications. This article has been adapted from David Platt's upcoming book introducing the Microsoft .NET Platform to be published by Microsoft Press in Spring 2000.