• dotNetClass "System.Windows.Forms.View").


     
    if (splitViewRollout != undefined) and (splitViewRollout.isDisplayed) do (destroyDialog splitViewRollout)
    global splitViewRollout
    rollout splitViewRollout " Modifiers"
    (
     -- TreeView
     fn initTreeView tv =
     (
      tv.checkboxes = true
      tv.sorted = true
     )
     fn addModifiers theNode theModifiers =
     (
      for m in theModifiers do
      (
       newNode = theNode.nodes.add m.name
       newNode.tag = dotNetMXSValue m
       newNode.checked = m.enabled
      )
     )
     fn addObjects theNode theObjects =
     (
      for c in theObjects do
      (
       newNode = theNode.nodes.add c.name
       newNode.tag = dotNetMXSValue c
       newNode.checked = not c.isHidden
       newNode.forecolor = (dotNetClass "System.Drawing.Color").fromARGB 200 0 0
      
       addModifiers newNode c.modifiers
      )
     )
     fn fillInTreeView tv =
     (
      theRoot = tv.nodes.add "(Objects)"
      rootNodes = for o in objects collect o
      addObjects theRoot rootNodes
     )
     -- ListView
     fn initListView lv =
     (
      lv.gridLines = true
      lv.view = (dotNetClass "System.Windows.Forms.View").Details
      lv.fullRowSelect = true
     
      layoutDef = #(#("Property", 120), #("Value", 60))
     
      for i in layoutDef do (lv.columns.add i[1] i[2])
     )
     fn fillInSpreadsheet lv =
     (
      lv.items.clear()
      theRange = #()
     
      if selection.count == 1 and myNode != undefined do
      (
       propNamesArray = getPropNames myNode
     
       for i = 1 to propNamesArray.count do
       (
     li = dotNetObject "System.Windows.Forms.ListViewItem" ((propNamesArray[i]) as string)
     sub_Li = li.subItems.add ((getProperty myNode propNamesArray[i]) as string)
     
     append theRange li
       )
       lv.items.addRange theRange
      )
     )
     
     dotNetControl tv "TreeView" 290 height:490 pos:[5,5]
     dotNetControl lv_Properties "System.Windows.Forms.Listview" 290 height:490 pos:[305,5]
     
     on tv Click arg do
     (
      hitNode = tv.getNodeAt (dotNetObject "System.Drawing.Point" arg.x arg.y)
     
      if hitNode != undefined do
      (
       try
       ( 
     if superClassOf hitNode.tag.value == modifier then (select hitNode.parent.tag.value)
     else (select hitNode.tag.value)
     
     global myNode = hitNode.tag.value
       )
       catch (max select none)
      
       fillInSpreadsheet lv_Properties
      )
     )
     on splitViewRollout open do
     (
      initTreeView tv
      fillInTreeView tv
     
      initListView lv_Properties
      fillInSpreadsheet lv_Properties
     )
    )
    createDialog splitViewRollout 600 525 style:#(#style_sysmenu, #style_titlebar, #style_toolwindow)
    callbacks.addScript #preNodeGeneralPropChanged "splitViewRollout.fillInSpreadsheet splitViewRollout.lv_Properties"

  • 相关阅读:
    对称加密与非对称加密
    mysql 数据库备份
    Linux安装VM虚拟机
    Ubuntu安装桌面
    POM 总是提示找不到依赖
    Wine解决界面乱码
    There was an unexpected error (type=Not Found, status=404). /WEB-INF/views/login.jsp
    Linux打开chm文件
    vim 查找模式
    spring总结(02)注解
  • 原文地址:https://www.cnblogs.com/gaitian00/p/2202464.html
Copyright © 2020-2023  润新知