Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中添加自定义组件?_C#_Autocad - Fatal编程技术网

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

如何在C#中添加自定义组件?,c#,autocad,C#,Autocad,我需要从visual studio调用acadcolor组件。添加该组件时,一切正常 在我需要使用该组件之后,只需将该控件拖放到windows窗体,visual studio就会自动关闭,而不会传递任何消息 任何人都知道如何添加以及如何使用VisualStudio中的acadcolor组件吗 提前感谢。这里有一篇ADN文章,介绍Alex Filipovici刚才提到的内容: 还有其他选择。下面是一篇ADN文章,它使用WPF复制控件: 如果要选择颜色,也可以打开“颜色”对话框。这就是我最近所做的

我需要从visual studio调用acadcolor组件。添加该组件时,一切正常

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

任何人都知道如何添加以及如何使用VisualStudio中的acadcolor组件吗


提前感谢。

这里有一篇ADN文章,介绍Alex Filipovici刚才提到的内容:

还有其他选择。下面是一篇ADN文章,它使用WPF复制控件:

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

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);
    }
}

想一想。

这就是您需要的解决方案:?尝试以编程方式添加控件,如链接中所示。