/// <summary> /// 选择标签,用于“编辑”过滤F区域文章 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Label_LabelSelectEvent(object sender, LabelWithCheckEventArgs e) { //AddLabelToLocation(flowLayoutPanel2,6,e.LabelText,e.Id,false,false); //Stack Overflow 重复绑定重复执行 形成无限循环导致 }
/// <summary> /// 选择标签,用于“选中标签”并同步到数据库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Label_LabelCheckedEvent(object sender, LabelWithCheckEventArgs e) { if (CallBack) { return; } CheckBox lc = (CheckBox)sender; CheckState cs = lc.CheckState; curNode = tv_Folder.SelectedNode; if (curNode == null) { MessageBoxEx.Show(Constant.KM_WN_NODE_NOT_SELECTED, Constant.KM_TYPE_WARN, MessageBoxButtons.OK); return; } if (cs.ToString() == "Checked") { //removeRelation = null; //labels = e.LabelText; labelsId = e.Id;//tagId guidFlag = Guid.NewGuid(); bool exist = CheckExistTag(curNode.Name.ToGuid(), e.Id); if (exist) { MessageBoxEx.Show(Constant.KM_WN_ADD_EXIST_LABEL_NOT_ALLOWED, Constant.KM_TYPE_WARN, MessageBoxButtons.OK); CallBack = true; lc.CheckState = CheckState.Unchecked; CallBack = false; return; } if (labelDic.ContainsValue(labelsId)) { MessageBoxEx.Show(Constant.KM_WN_ADD_EXIST_LABEL_NOT_ALLOWED, Constant.KM_TYPE_WARN, MessageBoxButtons.OK); return; } labelDic.Add(labelsId, guidFlag); //将关联存入数据库 if (curNode == null) { MessageBoxEx.Show(Constant.KM_WN_NODE_NOT_SELECTED, Constant.KM_TYPE_WARN, MessageBoxButtons.OK); return; } if (curNode.Tag.ToString() == Enums.LEAVES.ToString()) { //int i = SQLHelper.AddRelations(curNode.Name.ToInt(), e.Id); removeRelation=AddRelation(curNode.Name.ToGuid(), e.Id, guidFlag,removeRelation); } } else if (cs.ToString() == "Unchecked") { //guidFlag = Guid.Empty; //将关联移出数据库 curNode = tv_Folder.SelectedNode; if (curNode == null) { MessageBoxEx.Show(Constant.KM_WN_NOTE_NOT_SELECTED, Constant.KM_TYPE_WARN, MessageBoxButtons.OK); return; } if (curNode.Tag.ToString() == Enums.LEAVES.ToString()) { bool Nothing; Relation i = RelationsDAO.CreateRelationsDAO().IsExistTag(curNode.Name.ToGuid(),e.Id,out Nothing); if (removeRelation != null) { removeRelation = i; RemoveRelation(removeRelation, labelDic[e.Id]); labelDic.Remove(e.Id); } } } //txt_SelectedLabel.ControlText = ShowLabel(labelDic); //变更为 向Panel中添加Rectanglelabel 重点 }