NXの二次開発-UIStyler-Tree(ツリー)アプリケーション(1)では、UIStyler-Treeの加算関数について説明し、編集関数と削除関数を書き留めました。
1つ目は削除機能です。
a。ノードを削除します。
_ObjectsTree.DeleteNode(node);
現在のノードと子ノードが削除されます。
b。ツリー全体を削除する場合は、次のコードを使用します。
while(_ObjectsTree.RootNode!=null)
{
_ObjectsTree.DeleteNode(_ObjectsTree.RootNode);
}
_ObjectsTree.Redraw(true);
次に、編集機能があります。
a。次の行のコメントを解除します。
//_ObjectsTree.SetOnEndLabelEditHandler(new NXOpen.BlockStyler.Tree.OnEndLabelEditCallback(OnEndLabelEditCallback));
_ObjectsTree.SetOnEditOptionSelectedHandler(new NXOpen.BlockStyler.Tree.OnEditOptionSelectedCallback(OnEditOptionSelectedCallback));
_ObjectsTree.SetAskEditControlHandler(new NXOpen.BlockStyler.Tree.AskEditControlCallback(AskEditControlCallback));
_ObjectsTree.SetOnMenuHandler(new NXOpen.BlockStyler.Tree.OnMenuCallback(OnMenuCallback)); ;
_ObjectsTree.SetOnMenuSelectionHandler(new NXOpen.BlockStyler.Tree.OnMenuSelectionCallback(OnMenuSelectionCallback)); ;
//_ObjectsTree.SetIsDropAllowedHandler(new NXOpen.BlockStyler.Tree.IsDropAllowedCallback(IsDropAllowedCallback));;
//_ObjectsTree.SetIsDragAllowedHandler(new NXOpen.BlockStyler.Tree.IsDragAllowedCallback(IsDragAllowedCallback));;
public Tree.EditControlOption OnEditOptionSelectedCallback(NXOpen.BlockStyler.Tree tree, NXOpen.BlockStyler.Node node, int columnID, int selectedOptionID, string selectedOptionText, Tree.ControlType type)
{
if(tree==_ObjectsTree)
{
//type = Tree.ControlType.ComboBox;
return Tree.EditControlOption.Accept;
}
else
{
return Tree.EditControlOption.Reject;
}
}
public Tree.ControlType AskEditControlCallback(NXOpen.BlockStyler.Tree tree, NXOpen.BlockStyler.Node node, int columnID)
{
return Tree.ControlType.ComboBox;
}
public void OnMenuCallback(NXOpen.BlockStyler.Tree tree, NXOpen.BlockStyler.Node node, int columnID)
{
TreeListMenu treeListMenu = tree.CreateMenu();
treeListMenu.AddMenuItem(1, "删除");
treeListMenu.AddMenuItem(2, "编辑");
tree.SetMenu(treeListMenu);
}
public void OnMenuSelectionCallback(NXOpen.BlockStyler.Tree tree, NXOpen.BlockStyler.Node node, int menuItemID)
{
if (menuItemID == 1)
{
_ObjectsTree.DeleteNode(node);
NXUtilityTools.AllObjectsUnhightlight();
}
if(menuItemID==2)
{
string[] stringArray = new string[2] {"1111","2222"};
_ObjectsTree.SetEditOptions(stringArray,1);
}
}
//public Node.DropType IsDropAllowedCallback(NXOpen.BlockStyler.Tree tree, NXOpen.BlockStyler.Node node, int columnID, NXOpen.BlockStyler.Node targetNode, int targetColumnID)
//{
//}
次の機能を実現します。
1.右クリックしてメニューを追加します。
2.ノードを左クリックして、combox編集ボックスをポップアップします