Ejemplo n.º 1
0
 //计时器,多线程执行全选宏操作
 private void timer1_Tick(object sender, EventArgs e)
 {
     try
     {
         if (((Timer)sender).Tag.ToString() == "全选")
         {
             timer1.Stop();
             ObjectsInView = NXFun.GetSelectObjects();
             NXFun.RemoveAllSelect();
             timer1.Interval = 1000;
             timer1.Tag      = "取消全选";
             timer1.Start();
         }
         else if (((Timer)sender).Tag.ToString() == "取消全选")
         {
             timer1.Stop();
             //遍历尺寸
             List <NXOpen.Annotations.Dimension> dims = NXFun.GetDimensionInCurrentView(ObjectsInView);
             List <NXOpen.Annotations.BaseFcf>   fcfs = NXFun.GetBaseFcfInCurrentView(ObjectsInView);
             LabelDimMap.Clear();
             foreach (NXOpen.Annotations.Dimension dim in dims)
             {
                 DimInfor diminfor = NXFun.GetDimInfor(dim);
                 //存入Dictionary
                 LabelDimMap.Add(diminfor.id, diminfor);
             }
             LabelFcfMap.Clear();
             foreach (NXOpen.Annotations.BaseFcf fcf in fcfs)
             {
                 DimInfor diminfor = NXFun.GetFcfInfor(fcf);
                 LabelFcfMap.Add(diminfor.id, diminfor);
             }
             //转存到  LabelDimList
             LabelDimList.Clear();
             foreach (int k in LabelDimMap.Keys)
             {
                 foreach (DimInfor diminfor in LabelDimMap[k])
                 {
                     LabelDimList.Add(diminfor);
                 }
             }
             //转存到  LabelFcfList
             LabelFcfList.Clear();
             foreach (int k in LabelFcfMap.Keys)
             {
                 foreach (DimInfor diminfor in LabelFcfMap[k])
                 {
                     LabelFcfList.Add(diminfor);
                 }
             }
             //刷新显示
             RefreshDisplay();
             SetStatusLabel("查询结束!", 2);
         }
     }
     catch (System.Exception ex)
     {
         NXFun.MessageBox(ex.Message);
     }
 }
Ejemplo n.º 2
0
        //刷新dgv
        private void RefreshDisplay()
        {
            try
            {
                tsrbtnSearch.Visible = !IsEdit;
                tsrbtnOk.Visible     = IsEdit;
                tsrbtnCancel.Visible = IsEdit;

                bieluandong = true;
                dgvChicun.Rows.Clear();
                for (int i = 0; i < LabelDimList.Count; i++)
                {
                    string title = "";
                    if (LabelDimList[i].isLabel == "是")
                    {
                        title = (i + DimStartNum).ToString();
                        DimInfor temp = LabelDimList[i];
                        temp.id         = i + DimStartNum;
                        LabelDimList[i] = temp;
                    }
                    dgvChicun.Rows.Add(title);
                    dgvChicun[1, i].Value = LabelDimList[i].text;
                    dgvChicun[2, i].Value = LabelDimList[i].value;
                    dgvChicun[3, i].Value = LabelDimList[i].up;
                    dgvChicun[4, i].Value = LabelDimList[i].low;
                    dgvChicun[5, i].Value = NXFun.string2bool(LabelDimList[i].isLabel);
                    DataGridViewCheckBoxCell a = (DataGridViewCheckBoxCell)dgvChicun[5, i];
                }
                dgvXingwei.Rows.Clear();
                for (int i = 0; i < LabelFcfList.Count; i++)
                {
                    string title = "";
                    if (LabelFcfList[i].isLabel == "是")
                    {
                        title = "J" + (i + FcfStartNum).ToString();
                        DimInfor temp = LabelFcfList[i];
                        temp.id         = i + FcfStartNum;
                        LabelFcfList[i] = temp;
                    }
                    dgvXingwei.Rows.Add(title);
                    dgvXingwei[1, i].Value = LabelFcfList[i].text;
                    dgvXingwei[2, i].Value = LabelFcfList[i].value;
                    dgvXingwei[3, i].Value = NXFun.string2bool(LabelFcfList[i].isLabel);
                }
                bieluandong = false;
            }
            catch (System.Exception ex)
            {
                NXFun.MessageBox(ex.Message);
            }
        }
Ejemplo n.º 3
0
 //形位打标checkbox
 private void dgvXingwei_CellValueChanged(object sender, DataGridViewCellEventArgs e)
 {
     if (bieluandong)
     {
         return;
     }
     if (e.ColumnIndex == 3)  //标号
     {
         int sel = e.RowIndex;
         //修改这项并移动
         if ((bool)dgvXingwei[e.ColumnIndex, e.RowIndex].Value)
         {
             DimInfor temp = LabelFcfList[sel];
             if (temp.isLabel == "是")
             {
                 //本来就是 是  一般不会出现这种情况
             }
             else
             {
                 for (int i = sel; i >= 0; i--)
                 {
                     //移动到最末一个是的后面
                     if (LabelFcfList[i].isLabel == "是")
                     {
                         DimInfor temp1 = LabelFcfList[i + 1];
                         NXFun.Swap <DimInfor>(ref temp1, ref temp);
                         temp1.isLabel       = "是";
                         LabelFcfList[sel]   = temp;
                         LabelFcfList[i + 1] = temp1;
                         RefreshDisplay();
                         //恢复选中
                         dgvXingwei.Rows[i + 1].Selected = true;
                         break;
                     }
                     //没有 是 移动到顶
                     else if (i == 0 && LabelFcfList[i].isLabel == "否")
                     {
                         DimInfor temp1 = LabelFcfList[0];
                         NXFun.Swap <DimInfor>(ref temp1, ref temp);
                         temp1.isLabel     = "是";
                         LabelFcfList[sel] = temp;
                         LabelFcfList[0]   = temp1;
                         RefreshDisplay();
                         //恢复选中
                         dgvXingwei.Rows[0].Selected = true;
                         break;
                     }
                 }
             }
         }
         else
         {
             DimInfor temp = LabelFcfList[sel];
             if (temp.isLabel == "否")
             {
                 //本来就是 否  一般不会出现这种情况
             }
             else
             {
                 temp.isLabel = "否";
                 LabelFcfList.RemoveAt(sel);
                 LabelFcfList.Add(temp);
                 //移动到末
                 RefreshDisplay();
                 //恢复选中
                 dgvXingwei.Rows[LabelFcfList.Count - 1].Selected = true;
             }
         }
     }
 }
Ejemplo n.º 4
0
 //上移
 private void tsrbtnUp_Click(object sender, EventArgs e)
 {
     if (dgvChicun.SelectedRows.Count != 0)
     {
         //移动尺寸
         int sel = dgvChicun.SelectedRows[0].Index;
         if (sel == 0)
         {
             SetStatusLabel("选中的是第一项 无法继续移动", 1);
             return;
         }
         else if (LabelDimList[sel].isLabel == "否")
         {
             SetStatusLabel("选中的是不打标的项,移动没有意义", 1);
             return;
         }
         else
         {
             //替换两项
             DimInfor temp1 = LabelDimList[sel - 1];
             DimInfor temp2 = LabelDimList[sel];
             DimInfor temp3 = temp1;
             LabelDimList[sel - 1] = temp2;
             LabelDimList[sel]     = temp1;
             RefreshDisplay();
             //恢复选中
             dgvChicun.Rows[sel - 1].Selected = true;
             SetStatusLabel("向上移动成功", 2);
             return;
         }
     }
     else if (dgvXingwei.SelectedRows.Count != 0)
     {
         //移动形位
         int sel = dgvXingwei.SelectedRows[0].Index;
         if (sel == 0)
         {
             SetStatusLabel("选中的是第一项 无法继续移动", 1);
             return;
         }
         else if (LabelFcfList[sel].isLabel == "否")
         {
             SetStatusLabel("选中的是不打标的项,移动没有意义", 1);
             return;
         }
         else
         {
             //替换两项
             DimInfor temp1 = LabelFcfList[sel - 1];
             DimInfor temp2 = LabelFcfList[sel];
             DimInfor temp3 = temp1;
             LabelFcfList[sel - 1] = temp2;
             LabelFcfList[sel]     = temp1;
             RefreshDisplay();
             //恢复选中
             dgvXingwei.Rows[sel - 1].Selected = true;
             SetStatusLabel("向上移动成功", 2);
             return;
         }
     }
     else
     {
         SetStatusLabel("请选中尺寸或形位中某一行", 1);
         return;
     }
 }