程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#進行Visio二次開發之管理下拉列表(2)

C#進行Visio二次開發之管理下拉列表(2)

編輯:關於C語言

最後,我們需要查看某個設備的時候,把它的下拉列表屬性值更新顯示即可(注意:上個步驟只是修改了數據庫的列表值,而沒有改變圖紙的)。

由於我們查看圖紙設備的時候,我們一定是選定了某個設備,那麼我們在選定操作裡面(響應Visio DrawingControl控件的SelectionChanged事件)更新圖紙設備的列表字段就可以了,更新下拉列表的操作其實就是遍歷所有的屬性,對是可變列表的屬性修改其列表值即可。

if (VisWindow.Selection.Count > 0)
            {
                Shape shapeSelected = VisWindow.Selection.get_Item16(1);
                //只更新選定的第一個設備的下拉列表,這樣速度不會很慢
                dropdownBLL.UpdateDropdownListValue(shapeSelected);
            }
        /**//// <summary>
        /// 更新Shape下拉列表的值
        /// </summary>
        public void UpdateDropdownListValue(Visio.Shape targetShape)
        {
            string fieldId = string.Empty;
            string strFormatVlaue = string.Empty;
            List<StencilPropertyInfo> properties= propertyVOL.GetPropertyCollection(targetShape);
            foreach (StencilPropertyInfo entity in properties)
            {
                if (entity.PropType == PropType.visPropTypeListVar)
                {
                    strFormatVlaue = dropdownDAL.GetDrpFIEldVlaue(entity.DeviceName, entity.Name);
                    if (!string.IsNullOrEmpty(strFormatVlaue))
                    {
                        targetShape.get_CellsU("Prop." + entity.Name +".Format").FormulaU =
                            VisioUtility.StringToFormulaForString(strFormatVlaue);
                    }
                }
            }
        }

我們看到最後的結果如下

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved