data entry and validation with c sharp and vb .net windows forms 2003

568 484 0
data entry and validation with c sharp and vb .net windows forms 2003

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Data Entry and Validation with C# and VB .NET Windows Forms by Nick Symmonds ISBN:1590591089 Apress © 2003 (764 pages) This text demonstrates design patterns for everyday data entry programming tasks, showing the pitfalls of using some of the .NET controls and how to program around them. Table of Contents Data Entry and Validation with C# and VB .NET Windows Forms Introduction Chapter 1 - The .NET Data Entry Controls Chapter 2 - UI Design Considerations for Data Entry Chapter 3 - Data Presentation Screen Issues Chapter 4 - Keyboard- and Mouse-Based Data Entry Chapter 5 - The Object-Oriented GUI Chapter 6 - Advanced Data Entry Chapter 7 - Error Handling Chapter 8 - Advanced Validation and Custom Data Validation Controls Chapter 9 - XML Data Entry and Validation Chapter 10 - Keeping Users Happy Chapter 11 - Pulling It All Together Application Blocks Index List of Figures List of Tables List of Listings List of Sidebars Back Cover The old hacker adage “Garbage in, garbage out” has never been so important as it is today. With ever- increasing amounts of information flowing into and out of modern applications, the task of an application developer to control and verify information is critically important to any software project. For the first time, Data Entry and Validation with C# and VB .NET Windows Forms brings together current knowledge on this subject in an understandable, easy-to-read form. Covering development and best practices for data entry and validation, including GDI+, custom controls, localization, accessibility, proper data validation techniques, and best practices with Visual Basic and C#, Data Entry and Validation with C# and VB .NET Windows Forms is a book no modern programmer should be without. About the Author Nick Symmonds works for the Security and Safety Solutions division of Ingersoll-Rand, developing and integrating security software. He started out his professional life as an electronics technician. While getting his bachelor's degree in electrical engineering from the University of Hartford, he started to gravitate toward programming. Nick has spent quite a few years programming in assembly, C, C++, and Visual Basic. Recently, he has latched onto .NET like a lamprey and loves digging into the .NET core. Nick has written several articles on programming and has two books currently out: Internationalization and Localization Using Microsoft .NET (Apress, 2002) and GDI+ Programming in C# and VB .NET (Apress, 2002). Data Entry and Validation with C# and VB .NET Windows Forms Nick Symmonds Apress ™ Copyright © 2003 Nick Symmonds All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. (pbk): 1-59059-108-9 12345678910 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Technical Reviewer: Adriano Baglioni Editorial Board: Dan Appleman, Craig Berry, Gary Cornell, Tony Davis, Steven Rycroft, Julian Skinner, Martin Streicher, Jim Sumser, Karen Watterson, Gavin Wright, John Zukowski Assistant Publisher: Grace Wong Project Manager: Beth Christmas Copy Editor: Nicole LeClerc Production Manager: Kari Brooks Proofreader: Linda Siefert Compositor: Susan Glinert Stevens Indexer: Rebecca Plunkett Artist: April Milne Cover Designer: Kurt Krames Manufacturing Manager: Tom Debolski Distributed to the book trade in the United States by Springer-Verlag New York, Inc., 175 Fifth Avenue, New York, NY, 10010 and outside the United States by Springer-Verlag GmbH & Co. KG, Tiergartenstr. 17, 69112 Heidelberg, Germany. In the United States: phone 1-800-SPRINGER, email orders@springer-ny.com, or visit http://www.springer-ny.com. Outside the United States: fax +49 6221 345229, email orders@springer.de , or visit http://www.springer.de . For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA 94710. Phone 510-549-5930, fax 510-549-5939, email info@apress.com, or visit http://www.apress.com . The information in this book is distributed on an "as is" basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at http://www.apress.com in the Downloads section. For Celeste. You are the love of my life. About the Author Nick Symmonds started out his professional life as an electronics technician. While getting his bachelor's degree in electrical engineering from the University of Hartford, he started to gravitate toward programming. Nick has spent quite a few years programming in assembly, C, C++, and VB. Recently, he has latched onto .NET like a lamprey and loves digging into the .NET core. Nick has written several articles on programming and has two books currently out: Internationalization and Localization Using Microsoft .NET (Apress, 2002) and GDI+ Programming in C# and VB .NET (Apress, 2002). He works for the Security and Safety Solutions division of Ingersoll-Rand, developing and integrating security software. Nick lives with his family in the northwest hills of Connecticut and enjoys golfing, biking, and exploring the hills on his motorcycle. About the Technical Reviewer Adriano Baglioni got his first taste of computers as a freshman in high school, using BASIC on a PDP-11/70. He pursued his interest in computers at Rensselaer Polytechnic Institute (RPI), where he graduated with a bachelor's degree in computer and systems engineering. He followed that up with a master's degree in computer science, also from RPI. He has worked in the computer industry for 20 years, programming mostly in C and C++. His experience runs the gamut from embedded programming on 8051s to scientific programming on mainframes. He currently works at Veeder-Root Co., developing software for environmental monitoring equipment. When it's time to take a break from the computer, Adriano enjoys hiking, biking, and camping with his wife, Carol. Acknowledgments This is my third book for Apress. Each time it becomes more enjoyable. The level of professionalism within this company is unparalleled. Thanks to Beth Christmas for keeping me on track as my project manager. Nicole LeClerc did a wonderful job again as copy editor. I can't believe how fast you do what you do. Thanks to all those at Apress who helped and advised me on this book. Special thanks go out to Adriano Baglioni. Without his technical review comments, this book would not be nearly as good as it is. It was a pleasure working with you again. Introduction Anyone who has ever worked with a computer has had to enter data into it somehow. Anyone who has done any Windows programming (or DOS programming, if you go back far enough) has had to write data entry screens. What is data entry without some kind of validation? Then again, what is validation? Validation is the process of the receiving data (via the keyboard, the mouse, voice, serial connections, and so on) and making sure that the data meets the specifications you have laid out. For instance, if you are looking for a number but receive a character, your validation code would ignore that character. I wrote this book because it encompasses pretty much what most Windows programmers do on a day- to-day basis. As programmers, we all work with data. We collect it, massage it, store it, retrieve it, and present results back to the user. As a matter of fact, data entry and validation are likely such constant themes throughout your programming day that I bet you don't even realize you're doing them. When most new programmers think of data entry, they think "Booooring!" What often comes to mind are endless screens of text-based data entry fields for insurance companies. Where is the fun in that? After all, there is no chance for any creativity and after a few weeks of this kind of work, life becomes dull. It seems like assembly-line programming at its worst. Data Entry Code Can Be Interesting Is data entry and validation really this simple and dull? I think not. If it were, I would have changed professions long ago. Data entry involves two aspects. One is to collect data and the other is to make sure the data makes sense. The fun part is how you go about programming it. If you think that writing screen after screen of data entry fields is boring, how do you think end users feel using these screens? I would say they feel even more bored. Your job as a programmer here is twofold. First, you need to make the data entry screens not so boring to use, and second, you need to make the screens not so boring to program. An additional task is to make the screens sensible. The only thing worse to a user than an uninteresting program is a frustrating one. How many times have you used a program and had to hunt down certain data fields in screens where they don't belong? You tend to wonder, what were they thinking?! Perhaps you have received some feedback like this about your own program. Who Should Read This Book This book is for intermediate and well-seasoned programmers who are already writing in .NET or want to change over to .NET. I assume a level of programming knowledge commensurate with a basic understanding of .NET and a good understanding of programming in general. Readers should know some object-oriented and general programming techniques such as the following: Function overloading Inheritance Class design and instantiation Use of threads and the advantages (and pitfalls) of threading Exception handling Readers should also be familiar with some of the .NET-specific topics such as the following: Garbage collection JIT compiler Organization of the .NET namespaces Why You Should Read This Book Take a look through your friendly local bookstore's computer book section. You will find quite a few books about .NET. They all seem to fall somewhere in the following categories: Books on everything you could possibly know about C# in 1,500 pages (ditto for Visual Basic .NET [VB .NET]) Books outlining how to do a specific task within .NET, such as writing an ASP page All kinds of books about the .NET Framework and the philosophy behind it Books for all the "idiots" and "dummies" who write the majority of our computer programs Basically what you will see are "task" books. Rarely will you see a book devoted to a programming specialty that requires knowledge of quite a few tasks along with interesting uses of the .NET Framework and good general practices. Some examples of task book topics that I have seen are as follows: Programming games in .NET Writing scientific programs in .NET Writing a scalable client/server program in .NET If you think about some specialties, you may need several books just to get all the information you need to accomplish what you do every day. This book isn't a task book; it's a programming specialty book. In it you will find information on subjects such as Programming graphics Programming Windows Forms Using localization Using XML Building user controls I cover quite a few other topics as well. You see, by including these few subjects in this book, I've saved you from buying five other books. Granted, I don't go into great depth on any of these items, but by the time you finish reading this book, you'll be familiar with them and know how to use them. Isn't that what you're really interested in, anyway? What Makes This Book Unique Visual Studio .NET is not new anymore. Since the product's release in early 2002, Microsoft has been evangelizing the advantages of .NET, Web services, and just moving ahead in the programming game in general. You probably already have a couple of books on .NET. [ 1 ] Perhaps you have written a program or two just to try things out and kick the tires a little. My local bookstore has multiple shelves filled with books on .NET. What distinguishes this book from the others is the application-oriented aspect. As I have stated, I present an end result here that you may not see in other books. You will see quite a few techniques in this book that you can surely find elsewhere. However, instead of showing you how to program mouse events, for example, I show you how to program mouse events within the context of the all-important data entry screen. You might consider this book a consolidation of best practices for getting the most out of the .NET Framework with an eye toward the user interface and data validation. Knowing a technique is not the same as knowing how to apply it. This book teaches you how to better apply what you probably do on a daily basis, but within the context of .NET. [ 1 ] Perhaps you have one of my previous books on .NET: GDI+ Programming in C# and VB .NET or Internationalization and Localization Using Microsoft .NET What You Will Get Out of This Book As with my last two books, I decided to include all examples in both C# and VB .NET. I like to do this because it appeals to a wider audience, and it also lets you see what the differences are between C# and VB when you are programming the same task. You will also see how C# and VB .NET really do use the same underlying framework to accomplish the same tasks. As a developer, I feel that this is one of the most awesome advantages to come out of .NET as a whole. As far as the Framework goes, you will see quite a bit of it in the chapters ahead. Think about all the things necessary for a good data entry screen. Here is some of what you will see: Determining which controls to use and when Writing a world-ready program Creating graphics using the GDI+ namespaces Threading Using collection classes Understanding accessibility issues Deciding which type of document interface to use Performing everyday data validation Extending controls Creating custom data validation controls Using error handling Understanding XML and hardware I/O Being able to create friendly and usable data entry screens is not really taught in schools or even treated as a subject in most books. This book tries to remedy that situation and get you on the road to writing an effective program. A Word About the Examples I encourage you to enter at least some of the examples by hand in both languages. I feel it is good to be familiar with the two flagship languages of .NET: VB .NET and C#. You will see some cases where VB is better than C# and some cases where C# is better for a particular task than VB. For those of you who want to run the examples without the pain of writing them, you can download all the code from the Downloads section of the Apress Web site (http://www.apress.com ). All the examples in this book have gone through a thorough review process. They are not professional- level, robust products, but they should work as intended. I take responsibility for all programming errors in this book. If you find an error, please let me know about it and I will post the corrected code on the Apress Web site. You can reach me at nicksymmonds@attbi.com . [...]... System .Windows. Forms. ComboBox cmbStop; System .Windows. Forms. Label label4; System .Windows. Forms. ComboBox cmbFlow; System .Windows. Forms. Label label5; System .Windows. Forms. Button cmdClose; private System.ComponentModel.Container components = null; public Form1() { InitializeComponent(); this.StartPosition = FormStartPosition.CenterScreen; //Handle the click events for each combo box cmbSpeed.SelectedIndexChanged +=... flow control Public Class Form1 Inherits System .Windows. Forms. Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer InitializeComponent() Me.StartPosition = FormStartPosition.CenterScreen 'Handle the click events for each combo box AddHandler cmbSpeed.SelectedIndexChanged, AddressOf Speed AddHandler cmbLen.SelectedIndexChanged,... flow control /// public class Form1 : System .Windows. Forms. Form { private System .Windows. Forms. Label label1; private System .Windows. Forms. ComboBox cmbSpeed; private private private private private private private private private System .Windows. Forms. ComboBox cmbLen; System .Windows. Forms. Label label2; System .Windows. Forms. ComboBox cmbParity; System .Windows. Forms. Label label3; System .Windows. Forms. ComboBox... far as VB NET goes, you can get an event handler for a certain control by double-clicking the control The IDE will generate the event shell for you similar to VB 6.0 This consists of the event handler procedure name followed by the event it handles It looks like this: Private Sub cmdClose_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdClose.Click The C# IDE does much the... EventHandler(this.Speed); cmbLen.SelectedIndexChanged += new EventHandler(this.DataLen); cmbParity.SelectedIndexChanged += new EventHandler(this.Parity); cmdClose.Click += new EventHandler(this.CloseMe); cmbSpeed.DropDownStyle = ComboBoxStyle.DropDownList; cmbSpeed.Items.Add("9,600"); cmbSpeed.Items.Add("4,800"); cmbSpeed.Items.Add("2,400"); cmbSpeed.SelectedIndex=0; cmbFlow.DropDownStyle = ComboBoxStyle.DropDownList;... preceding Label and name it cmbParity 7 Add a Label below the preceding ComboBox and change its text to StopBits 8 Add a ComboBox below the preceding Label and name it cmbStop 9 Add a Label below the preceding ComboBox and change its text to Flow Control 10 Add a ComboBox below the preceding Label and name it cmbFlow 11 Add a Button to the bottom of the form and call it cmdClose Change its text to Close 12... As Object, ByVal e As EventArgs) Select Case (cmbSpeed.Text) Case "9,600" cmbLen.Items.Clear() cmbLen.Items.Add("7 Bits") cmbLen.Items.Add("8 Bits") Case "4,800" cmbLen.Items.Clear() cmbLen.Items.Add("6 Bits") cmbLen.Items.Add("7 Bits") Case "2,400" cmbLen.Items.Clear() cmbLen.Items.Add("5 Bits") cmbLen.Items.Add("6 Bits") Case "1,200" cmbLen.Items.Clear() cmbLen.Items.Add("8 Bits") End Select cmbLen.SelectedIndex... Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer InitializeComponent() cmbMaxLen.Items.Clear() cmbMaxLen.Items.Add("5") cmbMaxLen.Items.Add("10") cmbMaxLen.Items.Add("15") cmbMaxLen.Items.Add("20") AddHandler cmbMaxLen.SelectedIndexChanged, AddressOf Me.ChangeLen cmbMaxLen.SelectedIndex = 0 txtUpper.CharacterCasing = CharacterCasing.Upper... elementary /// text entry validation /// public class Form1 : System .Windows. Forms. Form { private System .Windows. Forms. Label label1; private System .Windows. Forms. ComboBox cmbMaxLen; private System .Windows. Forms. Button cmdClose; private System .Windows. Forms. Label label5; private System .Windows. Forms. Label label6; private System .Windows. Forms. Label label7; private System .Windows. Forms. TextBox txtUpper;... cmbMaxLen.Items.Add("20"); cmbMaxLen.SelectedIndexChanged += new EventHandler(this.ChangeLen); cmbMaxLen.SelectedIndex = 0; txtUpper.CharacterCasing = CharacterCasing.Upper; txtPassword.PasswordChar = '*'; txtCentered.TextAlign = HorizontalAlignment.Center; txtMultiLine.Multiline = true; txtMultiLine.ScrollBars = ScrollBars.Vertical; txtMultiLine.WordWrap = true; txtMultiLine.AcceptsReturn = true; txtMultiLine.AcceptsTab . development and best practices for data entry and validation, including GDI+, custom controls, localization, accessibility, proper data validation techniques, and best practices with Visual Basic and C# ,. of the .NET controls and how to program around them. Table of Contents Data Entry and Validation with C# and VB .NET Windows Forms Introduction Chapter 1 - The .NET Data Entry Controls Chapter. Data Entry Chapter 7 - Error Handling Chapter 8 - Advanced Validation and Custom Data Validation Controls Chapter 9 - XML Data Entry and Validation Chapter 10 - Keeping Users Happy Chapter 11 - Pulling

Ngày đăng: 17/04/2014, 09:16

Từ khóa liên quan

Mục lục

  • Table of Contents

  • BackCover

  • Data Entry and Validation with C# and VB .NET Windows Forms

  • Introduction

  • Chapter 1: The .NET Data Entry Controls

  • Chapter 2: UI Design Considerations for Data Entry

  • Chapter 3: Data Presentation Screen Issues

  • Chapter 4: Keyboard- and Mouse-Based Data Entry

  • Chapter 5: The Object-Oriented GUI

  • Chapter 6: Advanced Data Entry

  • Chapter 7: Error Handling

  • Chapter 8: Advanced Validation and Custom Data Validation Controls

  • Chapter 9: XML Data Entry and Validation

  • Chapter 10: Keeping Users Happy

  • Chapter 11: Pulling It All Together

  • Application Blocks

  • Index

  • List of Figures

  • List of Tables

  • List of Listings

Tài liệu cùng người dùng

Tài liệu liên quan