C# 是否可以通过我创建的Revit API按钮打开我的winForm?

C# 是否可以通过我创建的Revit API按钮打开我的winForm?,c#,winforms,revit-api,C#,Winforms,Revit Api,我想通过我在Revit API中创建的按钮运行winForm,但我在这个领域是新手,现在有点卡住了 在我的Command.cs中,我说明了单击按钮后按钮的功能。我希望它打开我的winForm,而不是显示“Hello World” 有没有办法我怎么做?我是否需要以某种方式将我的winForm应用程序链接到此应用程序 namespace SetElevation { [Transaction(TransactionMode.Manual)] class Command : IExte

我想通过我在Revit API中创建的按钮运行winForm,但我在这个领域是新手,现在有点卡住了

在我的Command.cs中,我说明了单击按钮后按钮的功能。我希望它打开我的winForm,而不是显示“Hello World”

有没有办法我怎么做?我是否需要以某种方式将我的winForm应用程序链接到此应用程序

namespace SetElevation
{
    [Transaction(TransactionMode.Manual)]
    class Command : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            TaskDialog.Show("SetElevation", "Hello World!");
            return Result.Succeeded;
        }
    }
}

这是我的winForm Program.cs应用程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinFormTest
{
    static class Program
    {
        /// <summary>
        ///  The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.SetHighDpiMode(HighDpiMode.SystemAware);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
使用System.Windows.Forms;
名称空间WinFormTest
{
静态类程序
{
/// 
///应用程序的主要入口点。
/// 
[状态线程]
静态void Main()
{
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(新Form1());
}
}
}

对不起,如果我有一个非常愚蠢的问题,但我正在尽力做到最好!希望你能理解。谢谢你的帮助

欢迎使用Revit addin development。你很接近。 我猜想,如果您让您的加载项在上面工作,那么它将编译为DLL,而不是独立的EXE。您的Winform应用程序似乎是一个单独的EXE应用程序

要使其工作,您需要将Form1添加到DLL项目中。将其放入其中后,可以更改TaskDialog.Show,改为以下两行:

var myForm-新Form1(); myForm.ShowDialog()


有了这些,您就可以上路了。

谢谢您的回复!实际上,我已经成功地在同一个应用程序中直接创建了表单,所以现在我可以初始化它并调用Form.ShowDialog();很明显,它正在工作!谢谢你的热情欢迎!彼得,如果这对你有用的话,请随意投票或接受我对后代问题的回答。