[示例出处]:本示例来自《C#入门经典》第三版中文版,P349-P353
[示例涉及]:
1、RadioBox、CheckBox控件的基本使用
2、Validating事件的使用(同[C#][SAMPLE][CODE][Control]TextBox和Validating事件的相关处理 )
3、多委托处理同一事件方法(同[C#][SAMPLE][CODE][Control]TextBox和Validating事件的相关处理 )
[示例代码]:2文件(其余默认)

Form1.Designer.cs

  1namespace WA_TextBoxTest
  2{
  3    partial class Form1
  4    {
  5        /**//// <summary>
  6        /// 必需的设计器变量。
  7        /// </summary>
  8        private System.ComponentModel.IContainer components = null;
  9
 10        /**//// <summary>
 11        /// 清理所有正在使用的资源。
 12        /// </summary>
 13        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
 14        protected override void Dispose(bool disposing)
 15        {
 16            if (disposing && (components != null))
 17            {
 18                components.Dispose();
 19            }
 20            base.Dispose(disposing);
 21        }
 22
 23        Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
 24
 25        /**//// <summary>
 26        /// 设计器支持所需的方法 - 不要
 27        /// 使用代码编辑器修改此方法的内容。
 28        /// </summary>
 29        private void InitializeComponent()
 30        {
 31            this.label1 = new System.Windows.Forms.Label();
 32            this.label2 = new System.Windows.Forms.Label();
 33            this.textBoxName = new System.Windows.Forms.TextBox();
 34            this.textBoxAddress = new System.Windows.Forms.TextBox();
 35            this.textBoxAge = new System.Windows.Forms.TextBox();
 36            this.textBoxOutput = new System.Windows.Forms.TextBox();
 37            this.label4 = new System.Windows.Forms.Label();
 38            this.label5 = new System.Windows.Forms.Label();
 39            this.buttonOK = new System.Windows.Forms.Button();
 40            this.buttonHelp = new System.Windows.Forms.Button();
 41            this.checkBoxProgrammer = new System.Windows.Forms.CheckBox();
 42            this.groupBoxSex = new System.Windows.Forms.GroupBox();
 43            this.radioButtonMale = new System.Windows.Forms.RadioButton();
 44            this.radioButtonFemale = new System.Windows.Forms.RadioButton();
 45            this.groupBoxSex.SuspendLayout();
 46            this.SuspendLayout();
 47            // 
 48            // label1
 49            // 
 50            this.label1.AutoSize = true;
 51            this.label1.Location = new System.Drawing.Point(26, 27);
 52            this.label1.Name = "label1";
 53            this.label1.Size = new System.Drawing.Size(59, 12);
 54            this.label1.TabIndex = 0;
 55            this.label1.Text = "labelName";
 56            // 
 57            // label2
 58            // 
 59            this.label2.AutoSize = true;
 60            this.label2.Location = new System.Drawing.Point(26, 53);
 61            this.label2.Name = "label2";
 62            this.label2.Size = new System.Drawing.Size(77, 12);
 63            this.label2.TabIndex = 1;
 64            this.label2.Text = "labelAddress";
 65            // 
 66            // textBoxName
 67            // 
 68            this.textBoxName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
 69                        | System.Windows.Forms.AnchorStyles.Right)));
 70            this.textBoxName.Location = new System.Drawing.Point(127, 24);
 71            this.textBoxName.Name = "textBoxName";
 72            this.textBoxName.Size = new System.Drawing.Size(317, 21);
 73            this.textBoxName.TabIndex = 2;
 74            // 
 75            // textBoxAddress
 76            // 
 77            this.textBoxAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
 78                        | System.Windows.Forms.AnchorStyles.Right)));
 79            this.textBoxAddress.Location = new System.Drawing.Point(127, 50);
 80            this.textBoxAddress.Multiline = true;
 81            this.textBoxAddress.Name = "textBoxAddress";
 82            this.textBoxAddress.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
 83            this.textBoxAddress.Size = new System.Drawing.Size(317, 102);
 84            this.textBoxAddress.TabIndex = 2;
 85            // 
 86            // textBoxAge
 87            // 
 88            this.textBoxAge.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
 89                        | System.Windows.Forms.AnchorStyles.Right)));
 90            this.textBoxAge.Location = new System.Drawing.Point(127, 254);
 91            this.textBoxAge.Name = "textBoxAge";
 92            this.textBoxAge.Size = new System.Drawing.Size(99, 21);
 93            this.textBoxAge.TabIndex = 4;
 94            this.textBoxAge.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBoxAge_KeyPress);
 95            // 
 96            // textBoxOutput
 97            // 
 98            this.textBoxOutput.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
 99                        | System.Windows.Forms.AnchorStyles.Left)
100                        | System.Windows.Forms.AnchorStyles.Right)));
101            this.textBoxOutput.Location = new System.Drawing.Point(28, 307);
102            this.textBoxOutput.Multiline = true;
103            this.textBoxOutput.Name = "textBoxOutput";
104            this.textBoxOutput.ReadOnly = true;
105            this.textBoxOutput.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
106            this.textBoxOutput.Size = new System.Drawing.Size(416, 171);
107            this.textBoxOutput.TabIndex = 5;
108            // 
109            // label4
110            // 
111            this.label4.AutoSize = true;
112            this.label4.Location = new System.Drawing.Point(26, 257);
113            this.label4.Name = "label4";
114            this.label4.Size = new System.Drawing.Size(53, 12);
115            this.label4.TabIndex = 7;
116            this.label4.Text = "labelAge";
117            // 
118            // label5
119            // 
120            this.label5.AutoSize = true;
121            this.label5.Location = new System.Drawing.Point(26, 289);
122            this.label5.Name = "label5";
123            this.label5.Size = new System.Drawing.Size(71, 12);
124            this.label5.TabIndex = 8;
125            this.label5.Text = "labelOutput";
126            // 
127            // buttonOK
128            // 
129            this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
130            this.buttonOK.Location = new System.Drawing.Point(458, 18);
131            this.buttonOK.Name = "buttonOK";
132            this.buttonOK.Size = new System.Drawing.Size(82, 21);
133            this.buttonOK.TabIndex = 9;
134            this.buttonOK.Text = "OK";
135            this.buttonOK.UseVisualStyleBackColor = true;
136            this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
137            // 
138            // buttonHelp
139            // 
140            this.buttonHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
141            this.buttonHelp.CausesValidation = false;
142            this.buttonHelp.Location = new System.Drawing.Point(458, 43);
143            this.buttonHelp.Name = "buttonHelp";
144            this.buttonHelp.Size = new System.Drawing.Size(82, 21);
145            this.buttonHelp.TabIndex = 10;
146            this.buttonHelp.Text = "Help";
147            this.buttonHelp.UseVisualStyleBackColor = true;
148            this.buttonHelp.Click += new System.EventHandler(this.buttonHelp_Click);
149            // 
150            // checkBoxProgrammer
151            // 
152            this.checkBoxProgrammer.AutoSize = true;
153            this.checkBoxProgrammer.Checked = true;
154            this.checkBoxProgrammer.CheckState = System.Windows.Forms.CheckState.Checked;
155            this.checkBoxProgrammer.Location = new System.Drawing.Point(28, 166);
156            this.checkBoxProgrammer.Name = "checkBoxProgrammer";
157            this.checkBoxProgrammer.Size = new System.Drawing.Size(84, 16);
158            this.checkBoxProgrammer.TabIndex = 11;
159            this.checkBoxProgrammer.Text = "Programmer";
160            this.checkBoxProgrammer.UseVisualStyleBackColor = true;
161            // 
162            // groupBoxSex
163            // 
164            this.groupBoxSex.Controls.Add(this.radioButtonMale);
165            this.groupBoxSex.Controls.Add(this.radioButtonFemale);
166            this.groupBoxSex.Location = new System.Drawing.Point(28, 188);
167            this.groupBoxSex.Name = "groupBoxSex";
168            this.groupBoxSex.Size = new System.Drawing.Size(415, 55);
169            this.groupBoxSex.TabIndex = 12;
170            this.groupBoxSex.TabStop = false;
171            this.groupBoxSex.Text = "Sex";
172            // 
173            // radioButtonMale
174            // 
175            this.radioButtonMale.AutoSize = true;
176            this.radioButtonMale.Location = new System.Drawing.Point(235, 24);
177            this.radioButtonMale.Name = "radioButtonMale";
178            this.radioButtonMale.Size = new System.Drawing.Size(113, 16);
179            this.radioButtonMale.TabIndex = 1;
180            this.radioButtonMale.Text = "radioButtonMale";
181            this.radioButtonMale.UseVisualStyleBackColor = true;
182            // 
183            // radioButtonFemale
184            // 
185            this.radioButtonFemale.AutoSize = true;
186            this.radioButtonFemale.Checked = true;
187            this.radioButtonFemale.Location = new System.Drawing.Point(55, 24);
188            this.radioButtonFemale.Name = "radioButtonFemale";
189            this.radioButtonFemale.Size = new System.Drawing.Size(125, 16);
190            this.radioButtonFemale.TabIndex = 0;
191            this.radioButtonFemale.TabStop = true;
192            this.radioButtonFemale.Text = "radioButtonFemale";
193            this.radioButtonFemale.UseVisualStyleBackColor = true;
194            // 
195            // Form1
196            // 
197            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
198            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
199            this.ClientSize = new System.Drawing.Size(561, 490);
200            this.Controls.Add(this.groupBoxSex);
201            this.Controls.Add(this.checkBoxProgrammer);
202            this.Controls.Add(this.buttonHelp);
203            this.Controls.Add(this.buttonOK);
204            this.Controls.Add(this.label5);
205            this.Controls.Add(this.label4);
206            this.Controls.Add(this.textBoxOutput);
207            this.Controls.Add(this.textBoxAge);
208            this.Controls.Add(this.textBoxAddress);
209            this.Controls.Add(this.textBoxName);
210            this.Controls.Add(this.label2);
211            this.Controls.Add(this.label1);
212            this.Name = "Form1";
213            this.Text = "Form1";
214            this.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxEmpty_Validating);
215            this.groupBoxSex.ResumeLayout(false);
216            this.groupBoxSex.PerformLayout();
217            this.ResumeLayout(false);
218            this.PerformLayout();
219
220        }
221
222        #endregion
223
224        private System.Windows.Forms.Label label1;
225        private System.Windows.Forms.Label label2;
226        private System.Windows.Forms.TextBox textBoxName;
227        private System.Windows.Forms.TextBox textBoxAddress;
228        private System.Windows.Forms.TextBox textBoxAge;
229        private System.Windows.Forms.TextBox textBoxOutput;
230        private System.Windows.Forms.Label label4;
231        private System.Windows.Forms.Label label5;
232        private System.Windows.Forms.Button buttonOK;
233        private System.Windows.Forms.Button buttonHelp;
234        private System.Windows.Forms.CheckBox checkBoxProgrammer;
235        private System.Windows.Forms.GroupBox groupBoxSex;
236        private System.Windows.Forms.RadioButton radioButtonMale;
237        private System.Windows.Forms.RadioButton radioButtonFemale;
238    }
239}
240
241

Form1.cs

  1using System;
  2using System.Collections.Generic;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Text;
  7using System.Windows.Forms;
  8
  9namespace WA_TextBoxTest
 10{
 11    public partial class Form1 : Form
 12    {
 13        public Form1()
 14        {
 15            InitializeComponent();
 16            this.buttonOK.Enabled = false;
 17
 18            //Tag values for testing if the data is valid.
 19            this.textBoxName.Tag = false;
 20            this.textBoxAddress.Tag = false;
 21            this.textBoxAge.Tag = false;
 22
 23            //订阅事件Subscriptions to events
 24            this.textBoxName.Validating += new CancelEventHandler(this.textBoxEmpty_Validating);
 25            this.textBoxAddress.Validating += new CancelEventHandler(this.textBoxEmpty_Validating);
 26            this.textBoxAge.Validating += new CancelEventHandler(this.textBoxEmpty_Validating);
 27
 28            //当控件中文本发生改变,就激发TextChanged事件。
 29            this.textBoxName.TextChanged +=new EventHandler(textBox_TextChanged);
 30            this.textBoxAddress.TextChanged+=new EventHandler(textBox_TextChanged);
 31            this.textBoxAge.TextChanged += new EventHandler(textBox_TextChanged);
 32        }
 33
 34        private void buttonOK_Click(object sender, EventArgs e)
 35        {
 36            //No testing for invalid values are made ,as that should not be necessary
 37            string output;
 38            
 39            //Concatenate the text values of for TextBoxes.
 40            output = "Name:" + this.textBoxName.Text + "\r\n";
 41            output += "Address:" + this.textBoxAddress.Text + "\r\n";
 42            output += "Occupation:" + (string)(this.checkBoxProgrammer.Checked ?
 43                "Programmer" : "Not a programmer") + "\r\n";    //此句等价于下面这句
 44            output += "Occupation:" + (string)(this.checkBoxProgrammer.Checked ?
 45                this.checkBoxProgrammer.Text : ("Not a "+this.checkBoxProgrammer.Text)) + "\r\n";
 46            output += "Sex:" + (string)(this.radioButtonFemale.Checked ?
 47                "Female" : "Male") + "\r\n";    //此句等价于下面这句
 48            output += "Sex:" + (string)(this.radioButtonFemale.Checked ?
 49                this.radioButtonFemale.Text : this.radioButtonMale.Text) + "\r\n";
 50            output += "Age:" + this.textBoxAge.Text;
 51 
 52            //Insert the new text.
 53            this.textBoxOutput.Text = output;
 54        }
 55
 56        private void buttonHelp_Click(object sender, EventArgs e)
 57        {
 58            //Write a short description of each TextBox in the Output TextBox.
 59            string output;
 60
 61            output = "Name=Your name\r\n";
 62            output += "Address=Your address\r\n";
 63            output += "Programmer=Check 'Programmer' if you are a programmer\r\n";
 64            output += "Sex=Choose your sex\r\n";
 65            output += "Age=Your age";
 66
 67            //Insert the new text.
 68            this.textBoxOutput.Text = output;
 69        }
 70
 71        private void textBoxEmpty_Validating(object sender, CancelEventArgs e)
 72        {
 73            //我们知道这个sender是一个对话框,所以我们将他们强制转换为TextBox
 74            TextBox tb = (TextBox)sender;
 75
 76            //如果对话框是空的话我们设置TextBox背景色为红色来象征问题。
 77            //如果控件有valid信息,我们就使用控件的Tag值来指出。
 78            if (tb.Text.Length == 0)
 79            {
 80                tb.BackColor = Color.Red;
 81                tb.Tag = false;
 82                //在这个例子中我们不想取消further processing
 83                //但是如果我们想要这么做的话,我们只需要添加以下一行:
 84                //e.Cancel=true;
 85            }
 86            else
 87            {
 88                this.BackColor = SystemColors.Window;
 89                tb.Tag = true;
 90            }
 91            //Finally ,we call ValidateOK which will set the value of the OK button.
 92            ValidateOK();
 93        }
 94
 95        private void textBoxAge_KeyPress(object sender, KeyPressEventArgs e)
 96        {
 97            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8)
 98            {
 99                e.Handled = true;   //Remove the character
100                //等于true告诉用户不应该对字符进行任何操作
101            }
102        }
103
104        private void textBox_TextChanged(object sender, EventArgs e)
105        {
106            //Cast the sender object to a TextBox
107            TextBox tb = (TextBox)sender;
108
109            //Test if the data is valid and set the tag and back ground color accordingly.
110            if (tb.Text.Length == 0)
111            {
112                tb.Tag = false;
113                tb.BackColor = Color.Red;
114            }
115            else
116            {
117                tb.Tag = true;
118                tb.BackColor = SystemColors.Window;
119            }
120
121            //Call ValidateOK to set the OK button
122            ValidateOK();
123        }
124
125        private void ValidateOK()
126        
127            //Set the OK button to enabled if all the Tags are true
128            this.buttonOK.Enabled = ((bool)(this.textBoxName.Tag) &&
129                (bool)(this.textBoxAge.Tag) &&
130                (bool)(this.textBoxAddress.Tag));
131        }
132    }
133}

[示例说明]:
1、开发语言:C#
2、开发环境:Visual Studio.Net 2005 Team suite
3、开发模板:C#.net项目->Windows应用程序

转载于:https://www.cnblogs.com/volnet/archive/2006/11/27/574437.html

[C#][SAMPLE][CODE][Control]RadioBox、CheckBox和Validating事件的相关处理相关推荐

  1. 通过ap运行cab安装程序的方法及Sample Code

    1. 第一部分:Sample Code 这部分转自:http://blog.csdn.net/hhygcy/archive/2009/05/04/4147870.aspx 最近这个东西很多被问及,软件 ...

  2. RAPI简单说明及Sample Code

    RAPI简单说明及Sample Code 一.什么是RAPI RAPI用来通过ActiveSync来建立PC与Device的通信.通过RAPI可以实现PC 对Device的控制和同步. 二.使用说明 ...

  3. 海思AI芯片(Hi3519A/3559A)方案学习(四)如何在3519A板子上运行sample code

    sample code编译 先解压缩SDK(Hi3519AV100_SDK_V2.0.1.0.tgz)得到Hi3519AV100_SDK_V2.0.1.0文件夹.其sample源代码藏在Hi3519A ...

  4. 大疆 DJI mobile SDK系列详细教程——运行实例代码(跑通大疆官方提供Mobile SDK里的sample code)

    大疆 DJI mobile SDK系列详细教程--运行实例代码(跑通大疆官方提供Mobile SDK里的sample code) 文章目录 一.官方文献与资源地址 二.操作步骤 提示:昨天在尝试跑通大 ...

  5. Fork and Join: Java也可以轻松地编写并发程序 原文地址 作者:Julien Ponge 译者:iDestiny 资源下载: Java SE 7 Sample Code(Zi

    Fork and Join: Java也可以轻松地编写并发程序 原文地址   作者:Julien Ponge 译者:iDestiny 资源下载: Java SE 7 Sample Code(Zip) ...

  6. windows mobile C# net3.5 如何捕捉Arrow的CheckBox的KeyDown事件?

    你需要override IsInputKey事件,可是这个时间却在.Net CF2中不支持.此路不通! 那么该如何做呢? 通过P/Invoke调用! 我是向来不喜欢C#的,搞来搞去,很多功能还是需要调 ...

  7. php 单选框选中事件,html中的checkbox和radio事件选择用法详解

    radio注册了click事件以后,神奇的是用键盘上的上下左右选择时,居然会触发鼠标事件,滚轮也会触发,这种神奇的事情在mousedown下面是不会发生的.(webkit不能使用上下左右选择) che ...

  8. c# Gridview 点击checkbox 触发的事件

    今天介绍下gridview中点击checkbox触发的事件,包括全选. 声明下,gridview中的checkbox不是在gridview设计器里面添加的,而是在gridview的属性中设置出来的,具 ...

  9. DataGridView的Validating事件注册后删除操作的处理

    我们在处理DataGridView必填项判断时,一般使用DataGridView的RowValidating事件判断,具体代码如下: protected override void OnRowVali ...

  10. C#中Validating事件与关闭窗口

    转自https://www.cnblogs.com/rosesmall/p/8512863.html 您可能经常需要检查用户输入到 Windows 窗体中的信息是否有效.例如,如果您有一个电话号码的 ...

最新文章

  1. Keil中使用宏编译来定义DEBUG输出
  2. linux病毒木马分析,Linux平台“盖茨木马”分析
  3. inline-block元素出现位置错位的解决方法
  4. python——类和对象之__str__方法的使用
  5. NYOJ 622 Vote
  6. JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation
  7. login窗口for mysql_CTF| SQL注入之login界面
  8. pytorch 之 分开安装 torch 和 torchvision
  9. C++多线程并发中线程管理
  10. Linux新安装后设置root密码
  11. 中职计算机英语c答案,中职高考计算机试题及答案-20210622105004.docx-原创力文档...
  12. Cocoon概念性介绍
  13. CSS3文字渐变效果
  14. callable线程池示例_Java Callable Future示例
  15. 前端生成二维码图片以及条形码图片
  16. 目标检测模型---SSD
  17. python sasl_Pyhive、SASL和Python 3.5
  18. Android Native层
  19. PPT保存pps演示文档时,在另一个电脑中字体显示不正常!(已解决)
  20. Android中如何计算图片占用的实际内存大小?

热门文章

  1. Android两种 旋转Bitmap方法
  2. Swift基础语法: 21 - Swift的可变形形参, 常量形参, 变量形参, In-Out形参
  3. [转载] 全本张广泰——第一回 开篇聊闲天 青楼是非多
  4. javaScript中简单数据类型和复杂数据类型赋值拷贝的理解
  5. Oncomine: 一个肿瘤相关基因研究的数据库--转载
  6. 关于直线,折线切割平面的问题
  7. python的logging日志
  8. 分享过滤条件中增加一个自定义过滤变量插件代码
  9. spring mvc controller间跳转 重定向 传参 (转)
  10. 注册、注销与结束session变量