精灵王
- 注册日期2010-12-08
- 发帖数640
- QQ
- 火币1103枚
- 粉丝120
- 关注75
|
阅读:3553回复:0
radiobox、checkbox和validating事件的相关处理 _c#应用
楼主#
更多
发布于:2011-01-08 21:10
| | | | [示例出处]:本示例来自《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 视窗系统 窗体设计器生成的代码#region 视窗系统 窗体设计器生成的代码 24 25 /**//// <summary> 26 /// 设计器支持所需的方法 - 不要 27 /// 使用代码编辑器修改此方法的内容。 28 /// </summary> 29 private void InitializeComponent() 30 { 31 this.label1 = new System.视窗系统.Forms.Label(); 32 this.label2 = new System.视窗系统.Forms.Label(); 33 this.textBoxName = new System.视窗系统.Forms.TextBox(); 34 this.textBoxAddress = new System.视窗系统.Forms.TextBox(); 35 this.textBoxAge = new System.视窗系统.Forms.TextBox(); 36 this.textBoxOutput = new System.视窗系统.Forms.TextBox(); 37 this.label4 = new System.视窗系统.Forms.Label(); 38 this.label5 = new System.视窗系统.Forms.Label(); 39 this.buttonOK = new System.视窗系统.Forms.Button(); 40 this.buttonHelp = new System.视窗系统.Forms.Button(); 41 this.checkBoxProgrammer = new System.视窗系统.Forms.CheckBox(); 42 this.groupBoxSex = new System.视窗系统.Forms.GroupBox(); 43 this.radioButtonMale = new System.视窗系统.Forms.RadioButton(); 44 this.radioButtonFemale = new System.视窗系统.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.视窗系统.Forms.AnchorStyles)(((System.视窗系统.Forms.AnchorStyles.Top | System.视窗系统.Forms.AnchorStyles.Left) 69 | System.视窗系统.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.视窗系统.Forms.AnchorStyles)(((System.视窗系统.Forms.AnchorStyles.Top | System.视窗系统.Forms.AnchorStyles.Left) 78 | System.视窗系统.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.视窗系统.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.视窗系统.Forms.AnchorStyles)(((System.视窗系统.Forms.AnchorStyles.Top | System.视窗系统.Forms.AnchorStyles.Left) 89 | System.视窗系统.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.视窗系统.Forms.KeyPressEventHandler(this.textBoxAge_KeyPress); 95 // 96 // textBoxOutput 97 // 98 this.textBoxOutput.Anchor = ((System.视窗系统.Forms.AnchorStyles)((((System.视窗系统.Forms.AnchorStyles.Top | System.视窗系统.Forms.AnchorStyles.Bottom) 99 | System.视窗系统.Forms.AnchorStyles.Left) 100 | System.视窗系统.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.视窗系统.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.视窗系统.Forms.AnchorStyles)((System.视窗系统.Forms.AnchorStyles.Top | System.视窗系统.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.视窗系统.Forms.AnchorStyles)((System.视窗系统.Forms.AnchorStyles.Top | System.视窗系统.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.视窗系统.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.视窗系统.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.视窗系统.Forms.Label label1; 225 private System.视窗系统.Forms.Label label2; 226 private System.视窗系统.Forms.TextBox textBoxName; 227 private System.视窗系统.Forms.TextBox textBoxAddress; 228 private System.视窗系统.Forms.TextBox textBoxAge; 229 private System.视窗系统.Forms.TextBox textBoxOutput; 230 private System.视窗系统.Forms.Label label4; 231 private System.视窗系统.Forms.Label label5; 232 private System.视窗系统.Forms.Button buttonOK; 233 private System.视窗系统.Forms.Button buttonHelp; 234 private System.视窗系统.Forms.CheckBox checkBoxProgrammer; 235 private System.视窗系统.Forms.GroupBox groupBoxSex; 236 private System.视窗系统.Forms.RadioButton radioButtonMale; 237 private System.视窗系统.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.视窗系统.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项目->视窗系统应用程式 http://www.cnblogs.com/volnet/archive/2006/11/27/574437.html 更多黑客技术 黑客软件 计算机技术 编程技术 网站技术 qq技术 IT新闻 黑客基地 请访问 灯火安全联盟 灯火黑客 www.hack8888.com/bbs
| | | | |
|