protected override void InitUIOnShown() { HintProvider.WaitingDone(Application.ProductName); base.InitUIOnShown(); this.pnlButtom.Visible = false; this.btnMin.Visible = true; ControlUtilityTool.SetControlDefaultFont(this.lblCaption, 15, FontStyle.Bold); //this.lblCaption.Text = "网络设备参数设置工具"; string strVersion = string.Format("V{0}", StrUtils.GetFileVersion(Path.Combine(Application.StartupPath, "ParamsSettingTool.exe"))); title = "网络设备参数设置工具" + "(" + strVersion + ")"; this.lblCaption.Text = title; f_UserControls = new Dictionary <string, GeneralUserControl>(); //启动Udp监听 int udpPort = StrUtils.StrToIntDef(AppXmlConfig.Singleton[AppXmlConfig.UDP_SOURCE_PORT].ToString(), AppConst.UDP_SOURCE_PORT); f_UdpListener = new UdpListener(udpPort); string errMsg = string.Empty; if (!f_UdpListener.StartUdp(ref errMsg)) { HintProvider.ShowAutoCloseDialog(this, string.Format("启动Udp监听失败,错误:{0}", errMsg)); } AppXmlConfig.Singleton.Save(); //暂时无云对讲设备 this.nbItemCloudIntercom.Visible = false; }
private bool CheckUIValid() { string exportPath = this.edtPath.Text.Trim(); if (!Directory.Exists(exportPath)) { HintProvider.ShowAutoCloseDialog(this, "请选择合法的导出路径!"); return(false); } return(true); }
/// <summary> /// 搜索设备 /// </summary> private bool SearchDevices() { string writeReport = this.GetWriteReport(0, AppConst.CMD_WORD_SEARCH_DEVIDES, AppEnv.Singleton.SystemPsd); string errMsg = string.Empty; IPEndPoint endpoint = new IPEndPoint(IPAddress.Broadcast, StrUtils.StrToIntDef(AppXmlConfig.Singleton[AppXmlConfig.UDP_PURPOSE_PORT].ToString(), AppConst.UDP_PURPOSE_PORT) ); if (!this.UdpListener.SendData(endpoint, writeReport, ref errMsg)) { HintProvider.ShowAutoCloseDialog(null, string.Format("搜索设备失败,错误:{0}", errMsg)); return(false); } return(true); }
private bool CheckIPRepeat(LinkageCtrlInfo linkageCtrlInfo) { Dictionary <string, int> ipList = new Dictionary <string, int>(); for (int i = 1; i <= linkageCtrlInfo.CloudElevatorCount; i++) { string ip = linkageCtrlInfo.CloudElevatorItems[i].DevIp; if (ipList.ContainsKey(ip)) { int devId = ipList[ip]; HintProvider.ShowAutoCloseDialog(null, string.Format("{0}号与{1}号云电梯IP地址重复!", devId, i)); return(false); } ipList.Add(ip, i); } return(true); }
/// <summary> /// 确定事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Btn_QSetcloudFloorTable_OK_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(this.cbbE_StartAuthFlag.Text.Trim())) { HintProvider.ShowAutoCloseDialog(null, "开始标识不能为空"); return; } if (string.IsNullOrWhiteSpace(this.cBbE_EndAuthFlag.Text.Trim())) { HintProvider.ShowAutoCloseDialog(null, "结束标识不能为空"); return; } if (string.IsNullOrWhiteSpace(this.cbbE_Start.Text.Trim())) { HintProvider.ShowAutoCloseDialog(null, "开始标号不能为空"); return; } //if((!RaBtn_DevNo.Checked) && (!RaBtn_CheckFloor.Checked) && (!RaBtn_KeyName.Checked)) //{ // HintProvider.ShowAutoCloseDialog(null, "请选择类别"); // return; //} f_QuickSetInfo_StratAuthFlag = cbbE_StartAuthFlag.Text; f_QuickSetInfo_EndAuthFlag = cBbE_EndAuthFlag.Text; f_QuickSetInfo_StartDevNo = cbbE_Start.Text; int StartAuthFlag = int.Parse(f_QuickSetInfo_StratAuthFlag); int EndAuthFlag = int.Parse(f_QuickSetInfo_EndAuthFlag); string errMsg = "结束标识不能小于开始标识"; if (EndAuthFlag < StartAuthFlag) { HintProvider.ShowAutoCloseDialog(null, string.Format("错误:{0}", errMsg)); } else { this.Close(); this.DialogResult = DialogResult.OK; } }
private void AnalysisDownParams(string strCmdStr) { //取返回的数据部分 string strCmdReport = StrUtils.CopySubStr(strCmdStr, 18, strCmdStr.Length - 22); //判断设备Id是否正确 int devId = CommandProcesserHelper.GetDevIDByCmdInfo(StrUtils.CopySubStr(strCmdStr, 2, 4)); if (devId != f_CurrentLinkageCtrlInfo.DevId) { return; } //获取返回的状态 int intStatus = StrUtils.StrToIntDef(StrUtils.CopySubStr(strCmdReport, 0, 2), -1, 16); switch (intStatus) { case 0x00: { this.AddOneDeviceToUI(f_CurrentLinkageCtrlInfo); HintProvider.ShowAutoCloseDialog(null, "参数设置成功"); } break; case 0x01: { HintProvider.ShowAutoCloseDialog(null, "参数设置失败"); } break; default: { HintProvider.ShowAutoCloseDialog(null, "参数设置失败,未知错误"); } break; } this.IsBusy = false; }
protected override void AnalysisRecvDataEx(string strCmdStr) { //报文格式F2 XX XX ... XX XX F3 //判断设备类型是否合法 DeviceType devType = CommandProcesserHelper.GetDevTypeByCmdInfo(StrUtils.CopySubStr(strCmdStr, 6, 2)); if (devType != DeviceType.LinkageCtrl) { return; } //根据命令字,解析对应命令 string strCmdWord = StrUtils.CopySubStr(strCmdStr, 14, 4); if (strCmdWord == AppConst.CMD_WORD_SEARCH_DEVIDES) { //判断报文长度 //取云电梯数量 int cloudElevatorCount = StrUtils.StrToIntDef(StrUtils.CopySubStr(strCmdStr, 64, 2), 0, 16); if (strCmdStr.Length < 70 + cloudElevatorCount * 10) //35 + cloudElevatorCount 字节 { HintProvider.ShowAutoCloseDialog(null, string.Format("报文长度错误,报文:{0}", strCmdStr)); return; } this.AnalysisSearchDevicesRecvData(strCmdStr); } else if (strCmdWord == AppConst.CMD_WORD_SET_CLOUD_ELEVATOR_PARAMS) { //判断报文长度 if (strCmdStr.Length < 24) //12字节 { HintProvider.ShowAutoCloseDialog(null, string.Format("报文长度错误,报文:{0}", strCmdStr)); return; } this.AnalysisDownParams(strCmdStr); } //this.UpdateHintInfo(strCmdStr); }
private bool CheckUIValid() { if (string.IsNullOrWhiteSpace(this.edtDevIp.Text.Trim())) { HintProvider.ShowAutoCloseDialog(null, "设备IP不能为空"); return(false); } if (string.IsNullOrWhiteSpace(this.edtSubnetMark.Text.Trim())) { HintProvider.ShowAutoCloseDialog(null, "子网掩码不能为空"); return(false); } if (string.IsNullOrWhiteSpace(this.edtGateWay.Text.Trim())) { HintProvider.ShowAutoCloseDialog(null, "网关不能为空"); return(false); } if (string.IsNullOrWhiteSpace(this.edtCloudUdpPort.Text.Trim())) { HintProvider.ShowAutoCloseDialog(null, "云电梯UDP端口不能为空"); return(false); } if (string.IsNullOrWhiteSpace(this.edtThirdUdpPort.Text.Trim())) { HintProvider.ShowAutoCloseDialog(null, "第三方对讲UDP端口不能为空"); return(false); } for (int i = 1; i <= this.cmbCloudCtrlCount.SelectedIndex; i++) { if (string.IsNullOrWhiteSpace(f_UCloudElevatorItems[i].DevIp)) { HintProvider.ShowAutoCloseDialog(null, string.Format("{0}号云电梯IP地址不能为空", i)); return(false); } } return(true); }
protected override void DownParams() { LinkageCtrlInfo linkageCtrlInfo = GetLinkageCtrlInfoBeforeDown(); if (linkageCtrlInfo == null) { return; } //检测IP地址重复 if (!this.CheckIPRepeat(linkageCtrlInfo)) { return; } string strWriteCmd = this.GetWriteCmdStr(linkageCtrlInfo); //判断长度 if (strWriteCmd.Length < 36 + linkageCtrlInfo.CloudElevatorCount * 10) //18 + linkageCtrlInfo.CloudElevatorCount *5 字节 { HintProvider.ShowAutoCloseDialog(null, "生成的报文长度错误,请检查设置的参数是否正确"); return; } string writeReport = this.GetWriteReport(linkageCtrlInfo.DevId, AppConst.CMD_WORD_SET_LINKAGE_CTRL_PARAMS, strWriteCmd); string errMsg = string.Empty; IPEndPoint endpoint = new IPEndPoint(IPAddress.Broadcast, StrUtils.StrToIntDef(AppXmlConfig.Singleton[AppXmlConfig.UDP_PURPOSE_PORT].ToString(), AppConst.UDP_PURPOSE_PORT)); if (!this.UdpListener.SendData(endpoint, writeReport, ref errMsg)) { HintProvider.ShowAutoCloseDialog(null, string.Format("设置参数失败,错误:{0}", errMsg)); } f_CurrentLinkageCtrlInfo = linkageCtrlInfo; //发送报文成功开始计时 this.BeginTick = Environment.TickCount; this.CoolingTick = 600; this.IsBusy = true; this.tmrCommunication.Start(); }
//获取项目编号 private void Btn_ReadcloudFloorTable_GetData_Click(object sender, EventArgs e) { try { if (TextEdit_ProNo.Text.Length < 8) { HintProvider.ShowAutoCloseDialog(null, string.Format("请输入8位项目编号")); return; } //string HttpAddress = "15w07q0502.51mypc.cn:15234/smartCard/syncdata/device/elevator/getCloudElevatorList?";//http地址 string _uSysCode = TextEdit_ProNo.Text;//传递的参数 00000126; //string _sAppKey = ""; DateTime currentTime = System.DateTime.Now; string createTime = currentTime.ToString("yyyyMMddHHmmss"); string _MD5 = "projectId" + createTime + "1177BE55278MMN5412365UHBN85214BE"; string _sSign = Md5Func(_MD5); string postString = "projectId=" + _uSysCode + "&sign=" + _sSign + "&createTime=" + createTime; //传递的参数 00000126 byte[] postData = Encoding.UTF8.GetBytes(postString); //编码 //RunLog.Log("获取项目请求: ccccccccccccc POSTString " + postString); iniFileControl ReadIniConfig = new iniFileControl(Application.StartupPath + @"\CloudAdd.ini"); string socketHttp = ReadIniConfig.IniReadValue("云服务配置", "地址"); //string url = "http://test.smartcard.jia-r.com/smartCard/syncdata/device/elevator/getCloudElevatorList";//地址 string url = socketHttp; WebClient webClient = new WebClient(); webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); //采取POST方式 byte[] responseData = webClient.UploadData(url, "POST", postData); //得到返回字符流 string srcString = Encoding.UTF8.GetString(responseData); //解码 //RunLog.Log("接收项目: ccccccccccccc srcString " + srcString); //srcString = CommonUtils.ToHex(srcString, "utf-8", true); //CloudFloorTableBaseInfo FloorTableSerializer = JsonConvert.DeserializeObject<CloudFloorTableBaseInfo>(srcString); //string Test = Md5Func("projectId201903091355181177BE55278MMN5412365UHBN85214BE"); comboBox_FloorName.Items.Clear(); //清空列表 for (int i = 0; i <= 112; i++) { try { string JsonData = cutJson(srcString, "data", i); if (JsonData == null) { return; } CloudFloorTableBaseInfo FloorTable = JsonConvert.DeserializeObject <CloudFloorTableBaseInfo>(JsonData); string f_deviceName = FloorTable.deviceName; f_deviceUnique = FloorTable.deviceUnique; //comboBox_FloorName // 添加项目 comboBox_FloorName.DropDownStyle = ComboBoxStyle.DropDownList; comboBox_FloorName.Items.Add(f_deviceName); //添加list var Listueq = new { ID = i, deviceName = f_deviceName, deviceUnique = f_deviceUnique }; list.Add(Listueq); } catch (Exception ex) { RunLog.Log(ex); } } } catch (Exception elog) { string errMsg = "获取项目编号失败"; HintProvider.ShowAutoCloseDialog(null, string.Format("通讯失败,错误:{0}", errMsg)); RunLog.Log(elog); } //string JsonData = cutJson(srcString, "data", 1); //CloudFloorTableBaseInfo FloorTable = JsonConvert.DeserializeObject<CloudFloorTableBaseInfo>(JsonData); }
private void Btn_ReadcloudFloorTable_OK_Click(object sender, EventArgs e) { try { string devUnique = string.Empty; if (list != null) { foreach (var one in list) { PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(one); PropertyDescriptor pdID = pdc.Find("deviceUnique", true); string lhcodeunique = pdID.GetValue(one).ToString(); PropertyDescriptor pdDevName = pdc.Find("deviceName", true); string lhcodedeviceName = pdDevName.GetValue(one).ToString(); if (lhcodedeviceName == comboBox_FloorName.Text.ToString()) { devUnique = lhcodeunique; } } } string _uSysCode = devUnique;//传递的参数 0000012610080; DateTime currentTime = System.DateTime.Now; string createTime = currentTime.ToString("yyyyMMddHHmmss"); string _MD5 = "deviceUnique" + createTime + "1177BE55278MMN5412365UHBN85214BE"; string _sSign = Md5Func(_MD5); RunLog.Log("_MD5" + _MD5); string postString = /*"projectId=" + TextEdit_ProNo.Text.ToString() + */ "deviceUnique=" + _uSysCode + "&sign=" + _sSign + "&createTime=" + createTime; //传递的参数 00000126 byte[] postData = Encoding.UTF8.GetBytes(postString); //编码 //RunLog.Log("请求: ccccccccccccc deviceUnique " + _uSysCode); //RunLog.Log("请求: ccccccccccccc POSTString " + postString); iniFileControl ReadIniConfig = new iniFileControl(Application.StartupPath + @"\CloudAdd.ini"); string socketHttp = ReadIniConfig.IniReadValue("云楼层对应表配置", "地址"); //string url = "http://test.smartcard.jia-r.com/smartCard/syncdata/device/elevator/getElevatorFloorConfig";//地址 string url = socketHttp.ToString(); WebClient webClient = new WebClient(); webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); //采取POST方式 byte[] responseData = webClient.UploadData(url, "POST", postData); //得到返回字符流 string srcString = Encoding.UTF8.GetString(responseData); //解码 RunLog.Log("1 云接收 :ccccccccccccc srcString " + srcString + "Length = " + srcString.Length); if (srcString.Length == 50) { HintProvider.ShowAutoCloseDialog(null, string.Format("获取楼层映射表异常,请前往物业后台重置。")); this.Close(); return; } ResponseInfo FloorTable = JsonConvert.DeserializeObject <ResponseInfo>(srcString); RunLog.Log("2 云接收 :ccccccccccccc srcString " + srcString); this.Close(); SendCloudFloorHex = FloorTable; // RunLog.Log("Read 实际楼层对比:SendCloudFloorHex ********* :" + FloorTable.data.logicFloor); this.DialogResult = DialogResult.OK; } catch (Exception ex) { string errMsg = "获取楼层对应表失败"; HintProvider.ShowAutoCloseDialog(null, string.Format("通讯失败,错误:{0}", errMsg)); RunLog.Log(ex); } }
private void AddOneDeviceToUI(LinkageCtrlInfo linkageCtrlInfo) { DataRow[] rows = f_DevicesDataTable.Select(string.Format("{0}={1}", DEV_ID, linkageCtrlInfo.DevId)); FindCount.AddToUpdate("" + linkageCtrlInfo.DevId); FindCount.AddToUpdate("" + linkageCtrlInfo.DevIp); if (rows.Length > 0) { rows[0].BeginEdit(); try { int FindSumCount = AppEnv.Singleton.UdpCount * AppEnv.Singleton.UdpCount + 1; if (FindCount["" + linkageCtrlInfo.DevId].FontCount > FindSumCount && !FindCount["" + linkageCtrlInfo.DevId].IsHint) { FindCount["" + linkageCtrlInfo.DevId].IsHint = true; HintProvider.ShowAutoCloseDialog(null, "设备ID冲突,ID:" + linkageCtrlInfo.DevId); } if (FindCount[linkageCtrlInfo.DevIp].FontCount > FindSumCount && !FindCount["" + linkageCtrlInfo.DevIp].IsHint) { FindCount["" + linkageCtrlInfo.DevIp].IsHint = true; HintProvider.ShowAutoCloseDialog(null, string.Format("设备IP冲突,IP:{0},ID:{1}", linkageCtrlInfo.DevIp, linkageCtrlInfo.DevId)); } rows[0][DEV_MAC] = linkageCtrlInfo.DevMac; rows[0][DEV_IP] = linkageCtrlInfo.DevIp; rows[0][SUBNET_MARK] = linkageCtrlInfo.SubnetMask; rows[0][GATE_WAY] = linkageCtrlInfo.GateWay; rows[0][CLOUD_ELEVATOR_UDP_PORT] = linkageCtrlInfo.CloudUdpPort; rows[0][THIRD_INTERCOM_UDP_PORT] = linkageCtrlInfo.ThirdUdpPort; rows[0][CLOUD_ELEVATOR_COUNT] = linkageCtrlInfo.CloudElevatorCount; for (int i = 1; i <= 8; i++) { rows[0][string.Format(CLOUD_ELEVATOR_ITEM_IP, i)] = linkageCtrlInfo.CloudElevatorItems[i].DevIp; rows[0][string.Format(CLOUD_ELEVATOR_ITEM_PROP, i)] = CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[i].CtrlProporties); } } finally { rows[0].EndEdit(); } } else { f_DevicesDataTable.Rows.Add(linkageCtrlInfo.DevId, linkageCtrlInfo.DevMac, linkageCtrlInfo.DevIp, linkageCtrlInfo.SubnetMask, linkageCtrlInfo.GateWay, linkageCtrlInfo.CloudUdpPort, linkageCtrlInfo.ThirdUdpPort, linkageCtrlInfo.CloudElevatorCount, linkageCtrlInfo.CloudElevatorItems[1].DevIp, CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[1].CtrlProporties), linkageCtrlInfo.CloudElevatorItems[2].DevIp, CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[2].CtrlProporties), linkageCtrlInfo.CloudElevatorItems[3].DevIp, CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[3].CtrlProporties), linkageCtrlInfo.CloudElevatorItems[4].DevIp, CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[4].CtrlProporties), linkageCtrlInfo.CloudElevatorItems[5].DevIp, CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[5].CtrlProporties), linkageCtrlInfo.CloudElevatorItems[6].DevIp, CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[6].CtrlProporties), linkageCtrlInfo.CloudElevatorItems[7].DevIp, CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[7].CtrlProporties), linkageCtrlInfo.CloudElevatorItems[8].DevIp, CommonUtils.GetNameByCloudElevatorProperties(linkageCtrlInfo.CloudElevatorItems[8].CtrlProporties) ); } //排序 f_DevicesDataTable.DefaultView.Sort = string.Format("{0} {1}", DEV_ID, "ASC"); ControlUtilityTool.AdjustIndicatorWidth(this.gvDevices); }
private void AnalysisRecvData(string strData) { //非忙碌状态,不解析数据 //if(!this.IsBusy) //{ // return; //} //去F0 string strCmdStr = CommandProcesserHelper.DelF0Escape(strData); //判断报文长度 if (strCmdStr.Length < 18) { RunLog.Log(string.Format("返回的报文长度错误,报文:{0}", strCmdStr)); HintProvider.ShowAutoCloseDialog(null, string.Format("返回的报文校验错误,错误:{0}", strCmdStr), HintIconType.Err); return; } //判断校验码 string requiredCheckValue = StrUtils.GetXORCheck(strCmdStr, 2, strCmdStr.Length - 6).ToUpper(); string factCheckValue = StrUtils.CopySubStr(strCmdStr, strCmdStr.Length - 4, 2); if (string.Compare(requiredCheckValue, factCheckValue, true) != 0) { RunLog.Log(string.Format("返回的报文校验错误,报文:{0}", strCmdStr)); HintProvider.ShowAutoCloseDialog(null, string.Format("返回的报文校验错误,错误:{0}", strCmdStr), HintIconType.Err); return; } //判断返回的命令状态 string strCmdStatus = StrUtils.CopySubStr(strCmdStr, 12, 2); //string strCmdStatus = StrUtils.CopySubStr(strCmdStr, 10, 2); if (StrUtils.HexStrToInt(strCmdStatus) != CommonUtils.RES_OK) { if (strCmdStatus == "7F") { string strCmdStatus2 = StrUtils.CopySubStr(strCmdStr, 18, 2); if (strCmdStatus2 == "02") { HintProvider.ShowAutoCloseDialog(null, string.Format("需要初始化设备,才能重新设置网络参数")); return; } } RunLog.Log(string.Format("命令状态错误:{0}", CommonUtils.GetErrMsgByCode(StrUtils.HexStrToInt(strCmdStatus)))); string Error = string.Format("命令状态错误:{0}", CommonUtils.GetErrMsgByCode(StrUtils.HexStrToInt(strCmdStatus))); HintProvider.ShowAutoCloseDialog(null, string.Format(Error), HintIconType.Err); return; } else if (StrUtils.HexStrToInt(strCmdStatus) == CommonUtils.RES_OK) { string strDevID = CommandProcesserHelper.GetDevIDByCmdInfo(StrUtils.CopySubStr(strCmdStr, 2, 4)).ToString(); if (IsDownParm || AppConst.IsDownParmCloudLinkage) { HintProvider.ShowAutoCloseDialog(null, string.Format("下载成功")); AppConst.IsDownParmCloudLinkage = false; IsDownParm = false; } } DeviceType devType = CommandProcesserHelper.GetDevTypeByCmdInfo(StrUtils.CopySubStr(strCmdStr, 6, 2)); if (devType == DeviceType.CloudLinkageInfoCtrl) { //云联动器 string strCmdStatusLink = StrUtils.CopySubStr(strCmdStr, 15, 4); if (strCmdStatusLink == "0121" || strCmdStatusLink == "012E" || strCmdStatusLink == "0100") { HintProvider.ShowAutoCloseDialog(null, "下载成功", HintIconType.OK); Thread.Sleep(1000); } } //重置 IsDownLoadDevLength = string.Empty; this.AnalysisRecvDataEx(strCmdStr); }
private bool CheckPsdValid() { if (this.rgpPsd.SelectedIndex == 0) { return(true); } string psd = this.edtPsd.Text.Trim(); if (psd.Length != 8) { HintProvider.ShowAutoCloseDialog(this, "密码必须由8位纯数字组成!"); return(false); } //密码不能为8个0,8个0为默认密码 if (psd.Equals(KeyMacOperate.DEFAULT_SYSTEM_PSD)) { HintProvider.ShowAutoCloseDialog(this, "密码不能为8个0,请重新输入!"); return(false); } if (string.IsNullOrWhiteSpace(psd)) { HintProvider.ShowAutoCloseDialog(this, "密码不能为空!"); return(false); } char[] charArr = psd.ToArray(); if (charArr.Length < 6 || charArr.Length > 20) { HintProvider.ShowAutoCloseDialog(this, "密码必须6-20位之间!"); return(false); } int count = charArr.Length; int oneIndex = 1; int twoIndex = 1; int threeIndex = 1; for (int i = 1; i < count; i++) { int beforValue = int.Parse(charArr[i - 1].ToString()); int curValue = int.Parse(charArr[i].ToString()); if (beforValue == curValue) { oneIndex++; } if (beforValue + 1 == curValue) { twoIndex++; } if (beforValue == curValue + 1) { threeIndex++; } } if (oneIndex == count) { HintProvider.ShowAutoCloseDialog(this, "密码不能为相同的数字!"); return(false); } if (twoIndex == count) { HintProvider.ShowAutoCloseDialog(this, "密码不能为顺序的连续数字!"); return(false); } if (threeIndex == count) { HintProvider.ShowAutoCloseDialog(this, "密码不能为逆序的连续数字!"); return(false); } return(true); }