乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 138|回复: 9

CAD可停靠面板PaletteSet问题

[复制链接]
xgr

56

主题

302

帖子

8

银币

中流砥柱

Rank: 25

铜币
526
发表于 2018-3-5 21:20:00 | 显示全部楼层 |阅读模式
本意是想利用PaletteSet做一个可以自动隐藏的浮动条。
如何使PaletteSet加载后处于浮动状态,并且显示设置的最小尺寸。
  1. [CommandMethod("xxx1")]
  2.         public static void Xxx1()
  3.         {
  4.             _ps1 = new PaletteSet("1");
  5.             var s = new Size(800, 100);
  6.             _ps1.Size = s;
  7.             _ps1.MinimumSize = new Size(800, 100);
  8.             UserControl x1 = new Pldhhzdw();
  9.             _ps1.Add("2", x1);
  10.             _ps1.Dock = DockSides.None;
  11.             _ps1.TitleBarLocation = PaletteSetTitleBarLocation.Left;
  12.             _ps1.Visible = true;
  13.             
  14.         }

可是加载后总是会自动停靠,请问怎么解决。谢谢!
要求显示效果如图

k5wzgrjqdyz.JPG

k5wzgrjqdyz.JPG


就如CAD的图层面板那样,打开就是处于浮动状态

2r30nhkzoz2.JPG

2r30nhkzoz2.JPG


回复

使用道具 举报

15

主题

22

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
82
发表于 2018-3-8 21:24:00 | 显示全部楼层
我也用vb.net做了一个类似的,用的也是PaletteSet,先设计了一个用户自定义控件后,编程加入到autocad。与楼上的差不多,后图纸存盘。图面上有很多块参考,我用如下程序遍历模型空间内的所有快参考,请问在哪些情况下遍历不到块参考?
    Public Function GetBlockNames() As String()
        Dim list As ArrayList = New ArrayList
        Dim db As Database = Autodesk.AutoCAD.DatabaseServices.HostApplicationServices.WorkingDatabase
        Dim tm As Autodesk.AutoCAD.DatabaseServices.TransactionManager = db.TransactionManager
        Dim docLock As DocumentLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument()
        Dim ta As Transaction = tm.StartTransaction()
        Try
            Dim bt As BlockTable = ta.GetObject(db.BlockTableId, OpenMode.ForRead)
            Dim btr As BlockTableRecord = ta.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForRead)
            For Each id As ObjectId In btr
                Dim obj As DBObject = ta.GetObject(id, OpenMode.ForRead)
                If TypeOf obj Is BlockReference Then
                    Dim br As BlockReference = CType(obj, BlockReference)
                    list.Add(br.Name)
                End If
            Next
            ta.Commit()
            Dim arr As String()
            If list.Count = 0 Then
                Return Nothing
            End If
            ReDim arr(list.Count - 1)
            For i As Integer = 0 To list.Count - 1 Step 1
                arr(i) = CType(list(i), String)
            Next
            Return arr
        Catch
            ta.Abort()
            Return Nothing
        Finally
            docLock.Dispose()
            ta.Dispose()
        End Try
    End Function
回复

使用道具 举报

xgr

56

主题

302

帖子

8

银币

中流砥柱

Rank: 25

铜币
526
发表于 2019-2-27 09:50:00 | 显示全部楼层
无意中弄好了,感谢各个网友的回复复制代码这样就不会自动停靠。
留存一下。
回复

使用道具 举报

xgr

56

主题

302

帖子

8

银币

中流砥柱

Rank: 25

铜币
526
发表于 2018-3-6 16:53:00 | 显示全部楼层

谢谢回复,这个试过,没有作用
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2018-3-6 08:27:00 | 显示全部楼层

貌似这个面板总是停靠的,你要浮动的话可能需要用普通对话框了;
有个DockEnabled属性,设置为None试试看
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2018-3-7 08:21:00 | 显示全部楼层
AutoCAD的图层对话框应该不是面板,是普通的对话框
回复

使用道具 举报

xgr

56

主题

302

帖子

8

银币

中流砥柱

Rank: 25

铜币
526
发表于 2018-3-7 20:47:00 | 显示全部楼层
自己做了一个

ola2b5jjjkt.gif

ola2b5jjjkt.gif

回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2018-3-9 08:33:00 | 显示全部楼层
嵌套块参考能遍历到吗?也即块参考里面的块参考?
回复

使用道具 举报

0

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
4
发表于 2018-3-24 16:08:00 | 显示全部楼层
学习学习学习了
回复

使用道具 举报

0

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
3
发表于 2018-4-1 21:59:00 | 显示全部楼层
PaletteSet在vs2010+cad2014下面,说没有引用,这是怎么回事?请教
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 02:14 , Processed in 0.372075 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表