Csharp/C#教程:WinForm IP地址输入框控件实现分享

本文实例为大家分享了WinFormIP地址输入框控件的具体实现代码,供大家参考,具体内容如下

IPInput.cs

usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Drawing; usingSystem.Data; usingSystem.Text; usingSystem.Windows.Forms; usingSystem.Text.RegularExpressions; namespaceIPInputControl.Ctrl { publicpartialclassIPInput:UserControl { publicIPInput() { InitializeComponent(); } TextBoxParentTxt; privatevoidIPInput_Load(objectsender,EventArgse) { ParentTxt=txt_1; } publicvoidtxt_KeyDown(objectsender,KeyEventArgse) { ParentTxt=(TextBox)sender; if(e.KeyCode==Keys.Left) { switch(ParentTxt.Name.Split('_')[1]) { case"1": break; case"2": if(ParentTxt.SelectionStart==0&&ParentTxt.Text!="") { if(int.Parse(ParentTxt.Text)>255) { MessageBox.Show(ParentTxt.Text+"不是有效项。请指定一个介于1和255之间的值。","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning); ParentTxt.Text="255"; ParentTxt.SelectionStart=0; } else { txt_1.Focus(); } } elseif(ParentTxt.Text=="") { txt_1.Focus(); } break; case"3": if(ParentTxt.SelectionStart==0&&ParentTxt.Text!="") { if(int.Parse(ParentTxt.Text)>255) { MessageBox.Show(ParentTxt.Text+"不是有效项。请指定一个介于1和255之间的值。","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning); ParentTxt.Text="255"; ParentTxt.SelectionStart=0; } else { txt_2.Focus(); } } elseif(ParentTxt.Text=="") { txt_2.Focus(); } break; case"4": if(ParentTxt.SelectionStart==0&&ParentTxt.Text!="") { if(int.Parse(ParentTxt.Text)>255) { MessageBox.Show(ParentTxt.Text+"不是有效项。请指定一个介于1和255之间的值。","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning); ParentTxt.Text="255"; ParentTxt.SelectionStart=0; } else { txt_3.Focus(); } } elseif(ParentTxt.Text=="") { txt_3.Focus(); } break; } } elseif(e.KeyCode==Keys.Right) { switch(ParentTxt.Name.Split('_')[1]) { case"1": if(ParentTxt.SelectionStart==ParentTxt.Text.Length&&ParentTxt.Text!="") { if(int.Parse(ParentTxt.Text)>223) { MessageBox.Show(ParentTxt.Text+"不是有效项。请指定一个介于1和223之间的值。","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning); ParentTxt.Text="223"; ParentTxt.SelectionStart=ParentTxt.Text.Length; } else { txt_2.Focus(); } } elseif(ParentTxt.Text=="") { txt_2.Focus(); } break; case"2": if(ParentTxt.SelectionStart==ParentTxt.Text.Length&&ParentTxt.Text!="") { if(int.Parse(ParentTxt.Text)>255) { MessageBox.Show(ParentTxt.Text+"不是有效项。请指定一个介于1和255之间的值。","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning); ParentTxt.Text="255"; ParentTxt.SelectionStart=ParentTxt.Text.Length; } else { txt_3.Focus(); } } elseif(ParentTxt.Text=="") { txt_3.Focus(); } break; case"3": if(ParentTxt.SelectionStart==ParentTxt.Text.Length&&ParentTxt.Text!="") { if(int.Parse(ParentTxt.Text)>255) { MessageBox.Show(ParentTxt.Text+"不是有效项。请指定一个介于1和255之间的值。","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning); ParentTxt.Text="255"; ParentTxt.SelectionStart=ParentTxt.Text.Length; } else { txt_4.Focus(); } } elseif(ParentTxt.Text=="") { txt_4.Focus(); } break; case"4": break; } } } publicvoidtxt_KeyPress(objectsender,KeyPressEventArgse) { ParentTxt=(TextBox)sender; Regexregex=newRegex(@"^[0-9]+$"); if(!regex.IsMatch(e.KeyChar.ToString())&&e.KeyChar!=(Char)Keys.Back) { e.Handled=true; } elseif(e.KeyChar==(Char)Keys.Back) { e.Handled=false; switch(ParentTxt.Name.Split('_')[1]) { case"1": break; case"2": if(ParentTxt.SelectionStart==0) { txt_1.Focus(); if(txt_1.Text!="") { txt_1.Text=txt_1.Text.Substring(0,txt_1.Text.Length-1); } txt_1.SelectionStart=txt_1.Text.Length; } break; case"3": if(ParentTxt.SelectionStart==0) { txt_2.Focus(); if(txt_2.Text!="") { txt_2.Text=txt_2.Text.Substring(0,txt_2.Text.Length-1); } txt_2.SelectionStart=txt_2.Text.Length; } break; case"4": if(ParentTxt.SelectionStart==0) { txt_3.Focus(); if(txt_3.Text!="") { txt_3.Text=txt_3.Text.Substring(0,txt_3.Text.Length-1); } txt_3.SelectionStart=txt_3.Text.Length; } break; } } else { switch(ParentTxt.Name.Split('_')[1]) { case"1": if(ParentTxt.SelectionStart==ParentTxt.Text.Length) { if(int.Parse(ParentTxt.Text+e.KeyChar.ToString())>223) { MessageBox.Show(ParentTxt.Text+e.KeyChar.ToString()+"不是有效项。请指定一个介于1和223之间的值。","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning); e.Handled=true; ParentTxt.Text="223"; } else { e.Handled=false; } } elseif(ParentTxt.Text.Length!=3) { e.Handled=false; } else { e.Handled=true; } break; default: if(ParentTxt.SelectionStart==ParentTxt.Text.Length) { if(int.Parse(ParentTxt.Text+e.KeyChar.ToString())>255) { MessageBox.Show(ParentTxt.Text+e.KeyChar.ToString()+"不是有效项。请指定一个介于1和255之间的值。","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning); e.Handled=true; ParentTxt.Text="255"; } else { e.Handled=false; } } elseif(ParentTxt.Text.Length!=3) { e.Handled=false; } else { e.Handled=true; } break; } } } publicvoidtxt_TextChanged(objectsender,EventArgse) { if(ParentTxt.Text.Length==3) { switch(ParentTxt.Name.Split('_')[1]) { case"1": if(ParentTxt.SelectionStart==ParentTxt.Text.Length) { txt_2.Focus(); } break; case"2": if(ParentTxt.SelectionStart==ParentTxt.Text.Length) { txt_3.Focus(); } break; case"3": if(ParentTxt.SelectionStart==ParentTxt.Text.Length) { txt_4.Focus(); } break; case"4": break; } } } } }

ControlText.cs

usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Drawing; usingSystem.Data; usingSystem.Text; usingSystem.Windows.Forms; usingSystem.Text.RegularExpressions; namespaceIPInputControl.Ctrl { publicpartialclassControlText:TextBox { publicControlText() { InitializeComponent(); } publicvoidtxt_TextChange(objectsender,EventArgse) { if(this.Text.Length==3) { SendKeys.Send("{TAB}"); } } protectedoverrideboolProcessCmdKey(refMessagemsg,KeyskeyData) { if(keyData==Keys.Tab) { returntrue; } returnbase.ProcessCmdKey(refmsg,keyData); } } }

更多完整代码请点击下载:WinFormIP地址输入框控件

您可能感兴趣的文章:c#WinForm窗体之间传值的几种方式(小结)Winform窗体传值的方法(示例)WinForm窗体间传值的方法C#,winform,ShowDialog,子窗体向父窗体传值C#Winform实现导入和导出Excel文件C#winform程序实现开机自启动并且识别是开机启动还是双击启动WINFORM窗体间的传值实现解析

标签: 输入框 orm 地址 输入 rm

详解C#App.config和Web.config加密

C#自定义IP输入框控件

上述就是C#学习教程:WinForm IP地址输入框控件实现分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/908183.html

(0)
上一篇 2021年10月25日
下一篇 2021年10月25日

精彩推荐