Chuyển đến nội dung
Diễn đàn CADViet
dinhtiennd94

Lập trình VB.NET

Các bài được khuyến nghị

e có 1 đoạn code tạo ribbon mà khi tạo xong nhấn ribbon 2 để thực hiện lệnh thì dòng chữ nó dúm lại và không thấy ảnh đâu,bác nào giúp e với,e cám ơn ạ

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Runtime

' Create Ribbon
Imports Autodesk.Windows
Imports System.Drawing
Imports System.IO


Namespace XDARibbon
    Public Class Ribbon
        Implements IExtensionApplication

        Public Sub Initialize() Implements IExtensionApplication.Initialize
            ' Khi load và trong CAD sẽ thực thi sub
            CreateRibbon()
        End Sub

        Public Sub Terminate() Implements IExtensionApplication.Terminate

        End Sub


        Public Sub CreateRibbon() ' Create Ribbon trong CAD


            Dim ribbonControl As Autodesk.Windows.RibbonControl = Autodesk.Windows.ComponentManager.Ribbon

            Dim Tab As New RibbonTab()

            Tab.Title = "Menu"

            Tab.Id = "TESTRIBBON_TAB_ID"

            ribbonControl.Tabs.Add(Tab)

            Dim srcPanel As Autodesk.Windows.RibbonPanelSource = New RibbonPanelSource()

            srcPanel.Title = "Panel1"


            Dim Panel As New RibbonPanel()

            Panel.Source = srcPanel

            Tab.Panels.Add(Panel)
            ' ---------------Add Button 1 trong RibbonCombo-----------------
            Dim BtCb1 As New RibbonButton() ' Tạo mới và cài đặt các thuộc tính cho btcb
            BtCb1.Text = "Ribbon"
            BtCb1.CommandParameter = "Polyline" & vbLf
            BtCb1.ShowText = True
            BtCb1.ShowImage = True
            BtCb1.Image = LoadImage()
            BtCb1.LargeImage = LoadImage()
            BtCb1.CommandHandler = New AdskCommandHandler()

            ' ---------------Add Button 2 trong RibbonCombo------------------------------------------
            Dim BtCb2 As New RibbonButton() ' Tạo mới và cài đặt các thuộc tính cho btcb
            BtCb2.Text = "Chọn đối tượng có thuộc tính giống nhau"
            BtCb2.CommandParameter = "copy" & vbLf
            BtCb2.ShowText = True

            BtCb2.ShowImage = True
            BtCb2.Image = LoadImage1()
            BtCb2.LargeImage = LoadImage1()
            BtCb2.CommandHandler = New AdskCommandHandler()

            Dim ribSplitButton As New RibbonSplitButton()
            ribSplitButton.Text = ""
            ribSplitButton.ShowText = True
            ribSplitButton.Width = 100
            ribSplitButton.Items.Add(BtCb1)
            ribSplitButton.Items.Add(BtCb2)

            ribSplitButton.Size = RibbonItemSize.Large
            srcPanel.Items.Add(ribSplitButton)
            Tab.IsActive = True

        End Sub

        ' OKE Tạo hàm trả về kiểu BitmapImage
        Private Shared Function LoadImage() As System.Windows.Media.Imaging.BitmapImage
            Dim pic As Bitmap = My.Resources.Resource1.bitmap1

            Dim ms As New MemoryStream()
            pic.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
            Dim bi As New System.Windows.Media.Imaging.BitmapImage()
            bi.BeginInit()
            bi.StreamSource = ms
            bi.EndInit()

            Return bi
        End Function
        Private Shared Function LoadImage1() As System.Windows.Media.Imaging.BitmapImage
            Dim pic As Bitmap = My.Resources.Resource2.bitmap2

            Dim ms As New MemoryStream()
            pic.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
            Dim bi As New System.Windows.Media.Imaging.BitmapImage()
            bi.BeginInit()
            bi.StreamSource = ms
            bi.EndInit()

            Return bi
        End Function

    End Class

    ' Định nghĩa Class thể thực thi
    Public Class AdskCommandHandler
        'Gọi InterFace System.Windows.Input.ICommand ra để sử dụng hàm của nó.
        Implements System.Windows.Input.ICommand

        Public Function CanExecute(parameter As Object) As Boolean Implements Windows.Input.ICommand.CanExecute
            Return True
        End Function
        ' Sự kiện của interface
        Public Event CanExecuteChanged(sender As Object, e As EventArgs) Implements Windows.Input.ICommand.CanExecuteChanged

        Public Sub Execute(parameter As Object) Implements Windows.Input.ICommand.Execute
            Dim ribBtn As RibbonButton = TryCast(parameter, RibbonButton)

            If ribBtn IsNot Nothing Then

                ' Lấy text là command đã được định nghĩa trong CommandParameter
                Dim Scmd As String = ribBtn.CommandParameter

                ' Gửi trực tiếp các lệnh vào dòng Command Line bằng phương thức SenStringToExecute
                ' để CAD thực hiện (thay thao tác type lệnh vào)
                Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.SendStringToExecute(Scmd, True, False, True)
            End If

        End Sub
    End Class


End Namespace

 

71861453_752526108551039_8713466750605197312_n.jpg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×