UG(NX)二次开发 BlockUI 集列表使用方法

发现网上的对于集列表控件的文章几乎没有,大家都在用树列表;所以分享自己刚刚发现的集列表的一些方法的用处。

首先设置回调函数

//这是添加按钮的
list0.SetAddHandler(new NXOpen.BlockStyler.SetList.AddCallback(AddCallback));

//这是删除按钮的
list0.SetDeleteHandler(new NXOpen.BlockStyler.SetList.DeleteCallback(DeleteCallback));

然后回调函数里面的内容

    static int i = 1;/./练习的时候,为了计数的,就是点击了添加,前面的第一列的序号



    int AddCallback(SetList setList)
    {
        //点击添加按钮的时候,会添加一个你设置的seedDlx的那个ui
        UIBlock uIBlock = list0.AddNewSet(true);

        //这个是设置显示的文本,第一列是序号,后面是的列自己设置即可
        list0.SetItemText(uIBlock, new string[] { i.ToString(), "测试1", "测试2" });
        i++;
        return 0;
    }



    int DeleteCallback(SetList list, UIBlock blockToDelete)
    { 

        //GetSelected()返回选择item的UIblock的数组
        for (int i = 0; i < list0.GetSelected().Length; i++)
        {
            //删掉即可
            list0.Delete(list0.GetSelected()[i]);
        }
        return 0;
    }

使用的时候,用下面的办法,就能找到里面的内容了

UG(NX)二次开发 BlockUI 集列表使用方法_第1张图片

 

//这里以点击应用为例    
public int apply_cb()
{
  int errorCode = 0;
  try
  {
   //获得所有的项,就是已经添加的内容
   UIBlock[] allBlocks = list0.GetItems();

   for (int i = 0; i < allBlocks.Length; i++)
   {
        //强转成NXOpen.BlockStyler.CompositeBlock,类似一个UI的集合,里面可以添加很多ui
       NXOpen.BlockStyler.CompositeBlock compositeBlock =             
              (NXOpen.BlockStyler.CompositeBlock)allBlocks[i];

        //因为我只设置了一个面选择的UI,所以只取第一个元素
       FaceCollector face = 
              (NXOpen.BlockStyler.FaceCollector)compositeBlock.GetBlocks()[0];

       //我用的是面选择器,所以用改第一个面得颜色为红色测试
       UFSession.GetUFSession().Obj.SetColor(face.GetSelectedObjects()[0].Tag, 186);
   }

}
catch (Exception ex)
{
    //---- Enter your exception handling code here -----
    errorCode = 1;
    theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error,ex.ToString());
 }
 return errorCode;
}

你可能感兴趣的:(NX开发,Block,UI,集列表,ugui,c#)