Solidworks Property Manager页面-同一行上的2个按钮

时间:2018-08-13 18:21:24

标签: visual-studio api add-in solidworks

我正在构建自己的Solidworks插件,并且在构建它时遇到了困难。

任何人都知道如何在Property Manager页面中并排创建2个按钮吗?我尝试了 swPropertyManagerPageControlLeftAlign_e 枚举的各种可能性,但均未成功。

这个想法是我希望人们从配置列表中选择他们希望服务器处理的每个配置。因此,我创建了4个按钮(SelectAll / SelectHighlighted / DeSelectHighlighted / DeSelectAll)来帮助用户进行选择。

这是现在的样子:

PMP

                //Ajout Controls Group_Configs
            lst_Configs_All = Group_Configs.AddControl2(lst_Configs_All_ID, (int)swPropertyManagerPageControlType_e.swControlType_Listbox, "Configurations", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, (int)swAddControlOptions_e.swControlOptions_Enabled + (int)swAddControlOptions_e.swControlOptions_Visible, "Liste des configurations du modèle actif");
            lst_Configs_All.Height = 180;
            lst_Configs_All.Style = (int)swPropMgrPageListBoxStyle_e.swPropMgrPageListBoxStyle_NoIntegralHeight;

            BitmapHandler iBmp = new BitmapHandler();
            string BitmapFileName = iBmp.CreateFileFromResourceBitmap("Willy.Controller.Template.btnConfigs.bmp", System.Reflection.Assembly.GetAssembly(this.GetType()));


            // string BitmapFileName = System.IO.Path.GetDirectoryName((System.Reflection.Assembly.GetExecutingAssembly().Location)); //& "\" & _SwAddin.BitMapsFolder & "Select2.bmp"

            btn_Configs_SelectAll = Group_Configs.AddControl2(btn_Configs_SelectAll_ID, (int)swPropertyManagerPageControlType_e.swControlType_BitmapButton, "Tout Sélectionner", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, (int)swAddControlOptions_e.swControlOptions_Enabled + (int)swAddControlOptions_e.swControlOptions_Visible, "Sélectionner toutes les configurations");
            btn_Configs_SelectAll.SetBitmapsByName3(BitmapFileName, "");

            btn_Configs_Select = Group_Configs.AddControl2(btn_Configs_Select_ID, (int)swPropertyManagerPageControlType_e.swControlType_BitmapButton, "Sélectionner les configuration surlignées", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent, (int)swAddControlOptions_e.swControlOptions_Enabled + (int)swAddControlOptions_e.swControlOptions_Visible, "Sélectionner les configuration surlignées");
            btn_Configs_Select.SetBitmapsByName3(BitmapFileName, "");

            btn_Configs_DeSelect = Group_Configs.AddControl2(btn_Configs_DeSelect_ID, (int)swPropertyManagerPageControlType_e.swControlType_BitmapButton, "Désélectionner les configuration surlignées", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent, (int)swAddControlOptions_e.swControlOptions_Enabled + (int)swAddControlOptions_e.swControlOptions_Visible, "Désélectionner les configuration surlignées");
            btn_Configs_DeSelect.SetBitmapsByName3(BitmapFileName, "");

            btn_Configs_DeSelectAll = Group_Configs.AddControl2(btn_Configs_DeSelectAll_ID, (int)swPropertyManagerPageControlType_e.swControlType_BitmapButton, "Désélectionner toutes les configuration", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent, (int)swAddControlOptions_e.swControlOptions_Enabled + (int)swAddControlOptions_e.swControlOptions_Visible, "Désélectionner toutes les configuration");
            btn_Configs_DeSelectAll.SetBitmapsByName3(BitmapFileName, "");

            lst_Configs_ToDo = Group_Configs.AddControl2(lst_Configs_ToDo_ID, (int)swPropertyManagerPageControlType_e.swControlType_Listbox, "Configurations", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, (int)swAddControlOptions_e.swControlOptions_Enabled + (int)swAddControlOptions_e.swControlOptions_Visible, "Liste des configurations à générer");
            lst_Configs_ToDo.Height = 180;
            lst_Configs_ToDo.Style = (int)swPropMgrPageListBoxStyle_e.swPropMgrPageListBoxStyle_NoIntegralHeight;

1 个答案:

答案 0 :(得分:0)

好的,我想经过一番研究,我找到了解决这个问题的方法。

Source

您需要将BitmapButton强制转换为其父对象(PropertyManagerPageControl),以访问Top和Left属性。然后,您可以将像素设置为所需的像素。

编辑:这是我要管理员执行的操作。我还包括了代码。

Visual

            btn_Configs_SelectAll = Group_Configs.AddControl2(btn_Configs_SelectAll_ID, (int)swPropertyManagerPageControlType_e.swControlType_BitmapButton, "Tout Sélectionner", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent, options, "Sélectionner toutes les configurations");
        string[] imageList = new string[1];
        imageList[0] = System.IO.Path.GetDirectoryName((System.Reflection.Assembly.GetExecutingAssembly().Location)) + @"\View\Bitmaps\btnConfigs_SelectAll.bmp";
        btn_Configs_SelectAll.SetBitmapsByName3(imageList, imageList);
        ((PropertyManagerPageControl)btn_Configs_SelectAll).Top = 140;
        ((PropertyManagerPageControl)btn_Configs_SelectAll).Left = 0;

        btn_Configs_Select = Group_Configs.AddControl2(btn_Configs_Select_ID, (int)swPropertyManagerPageControlType_e.swControlType_BitmapButton, "Sélectionner les configuration surlignées", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent, options, "Sélectionner les configuration surlignées");
        string[] imageList2 = new string[1];
        imageList2[0] = System.IO.Path.GetDirectoryName((System.Reflection.Assembly.GetExecutingAssembly().Location)) + @"\View\Bitmaps\btnConfigs_Select.bmp";
        btn_Configs_Select.SetBitmapsByName3(imageList2, imageList2);
        ((PropertyManagerPageControl)btn_Configs_Select).Top = 140;
        ((PropertyManagerPageControl)btn_Configs_Select).Left = 30;

        btn_Configs_DeSelect = Group_Configs.AddControl2(btn_Configs_DeSelect_ID, (int)swPropertyManagerPageControlType_e.swControlType_BitmapButton, "Désélectionner les configuration surlignées", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent, options, "Désélectionner les configuration surlignées");
        string[] imageList3 = new string[1];
        imageList3[0] = System.IO.Path.GetDirectoryName((System.Reflection.Assembly.GetExecutingAssembly().Location)) + @"\View\Bitmaps\btnConfigs_DeSelect.bmp";
        btn_Configs_DeSelect.SetBitmapsByName3(imageList3, imageList3);
        ((PropertyManagerPageControl)btn_Configs_DeSelect).Top = 140;
        ((PropertyManagerPageControl)btn_Configs_DeSelect).Left = 60;

        btn_Configs_DeSelectAll = Group_Configs.AddControl2(btn_Configs_DeSelectAll_ID, (int)swPropertyManagerPageControlType_e.swControlType_BitmapButton, "Désélectionner toutes les configuration", (int)swPropertyManagerPageControlLeftAlign_e.swControlAlign_Indent, options, "Désélectionner toutes les configuration");
        string[] imageList4 = new string[1];
        imageList4[0] = System.IO.Path.GetDirectoryName((System.Reflection.Assembly.GetExecutingAssembly().Location)) + @"\View\Bitmaps\btnConfigs_DeSelectAll.bmp";
        btn_Configs_DeSelectAll.SetBitmapsByName3(imageList4, imageList4);
        ((PropertyManagerPageControl)btn_Configs_DeSelectAll).Top = 140;
        ((PropertyManagerPageControl)btn_Configs_DeSelectAll).Left = 90;