用于c#安装项目的连接UI.Dialog

Arm*_*yan 5 c# connection dialog

在此输入图像描述

我将Microsoft.Data.ConnectionUI.Dialog.dll和Microsoft.Data.ConnectionUI.dll dll添加到我的项目中,并使用以下代码:

    Microsoft.Data.ConnectionUI.DataConnectionDialog dcd = new Microsoft.Data.ConnectionUI.DataConnectionDialog();

        Microsoft.Data.ConnectionUI.DataSource.AddStandardDataSources(dcd);

        if (Microsoft.Data.ConnectionUI.DataConnectionDialog.Show(dcd) == System.Windows.Forms.DialogResult.OK)
        {
            //
        }
        else
        {
            //
        }
Run Code Online (Sandbox Code Playgroud)

当我在普通的Windows应用程序中使用它时,一切似乎都没问题(显示带有"高级"按钮的标准VS数据连接对话框).当我在SETUP PROJECT中使用它时,它只显示高级对话框并且禁用了OK按钮.用户可以测试连接,但无法按OK按钮.

有谁知道为什么这不起作用?

Jer*_*son 2

根据设置启用/禁用按钮。

在本文中:http://erikej.blogspot.com.au/2010/04/using-adonet-data-connection-dialog-in.html作者对数据源进行了“硬编码”,因此禁用了“更改”按钮。

设置数据源名称后,应启用“确定”按钮。我挖出了 Data Connection Dialog Source Code代码向您展示: http://archive.msdn.microsoft.com/Connection/Release/ProjectReleases.aspx ?ReleaseId=3863

在 Micrsost.Data.ConnectionUI.Dialog 项目中,打开 DataConnectionDialog.cs 类,您可以看到这是事件:

private void ConfigureAcceptButton(object sender, EventArgs e)
{
try
{
acceptButton.Enabled = (ConnectionProperties != null) ? ConnectionProperties.IsComplete : false;
}
catch
{
acceptButton.Enabled = true;
}
}
Run Code Online (Sandbox Code Playgroud)

上述事件与 ConnectionProperties 方法挂钩,并在每次 PropertyChange 事件触发时调用:

properties.PropertyChanged += new EventHandler(ConfigureAcceptButton);
Run Code Online (Sandbox Code Playgroud)

要启用“确定”按钮,您需要满足 ConnectionProperties.IsComplete 条件。