如何在C#中添加自定义组件?

时间:2013-05-28 07:26:46

标签: c# autocad

我需要从visual studio调用acadcolor组件。当我添加组件时,它很好。

在我需要使用该组件之后,我只需将该控件拖放到Windows窗体,Visual Studio会自动关闭,而不会传递任何消息。

有人可以知道如何添加以及如何使用visual studio中的acadcolor组件吗?

谢谢你。

1 个答案:

答案 0 :(得分:0)

以下是关于Alex Filipovici提到的ADN文章: Use 64-bit ActiveX Component from a .NET Assembly

还有其他选择。这是使用WPF复制控件的ADN文章:WPF Implementation To Mimic Color Layer Controls

如果要选择颜色,也可以打开颜色对话框。这就是我最近所做的事情:

using acColor = Autodesk.AutoCAD.Colors;
using acWindows = Autodesk.AutoCAD.Windows;
//...
    public acColor.Color GetAutoCADColor()
    {
        acWindows.ColorDialog colorDialog = new acWindows.ColorDialog();

        DialogResult dialogResult = new DialogResult();
        dialogResult = colorDialog.ShowDialog();
        switch (dialogResult)
        {
            case DialogResult.OK:
                return colorDialog.Color;
            case DialogResult.Cancel:
                return Color.Empty.ConvertToAutoCADColor();
            default:
                return Color.Empty.ConvertToAutoCADColor();
        }
    }

扩展方法:

internal static class ColorExtensions
{
    internal static Color ConvertToWindowsColor(this acColor.Color acColor)
    {
        return Color.FromArgb(acColor.ColorValue.ToArgb());
    }

    internal static acColor.Color ConvertToAutoCADColor(this Color winColor)
    {
        return acColor.Color.FromRgb(winColor.R, winColor.G, winColor.B);
    }
}

只是一两个想法。