C# - 如何使X509Certificate2UI窗口始终置顶

3

如何让X509Certificate2UI窗口始终置顶,或者有其他方法可以在窗口置顶的情况下选择证书?我正在使用X509Certificate2UI.SelectFromCollection方法。


你如何显示窗口?如果窗口可以在父窗口上方,你可以使用带有父窗口句柄的重载函数(https://msdn.microsoft.com/zh-cn/library/ms223191(v=vs.110).aspx)。 - Dirk Vollmar
我使用 X509Certificate2UI.SelectFromCollection 方法。 - Michał Gibas
该方法还带有一个重载,它接受一个指向父窗口的句柄。您是否正在使用该重载? - Dirk Vollmar
1个回答

2
如果您将父窗口的句柄传递给显示窗口的函数,则可以使窗口保持在父窗口的顶部。也就是说,您需要使用以下重载SelectFromCollection方法,其中hwndParent设置为打开窗口的句柄。请注意保留HTML标签。
public static X509Certificate2Collection SelectFromCollection(
    X509Certificate2Collection certificates,
    string title,
    string message,
    X509SelectionFlag selectionFlag,
    IntPtr hwndParent
)

在Windows Forms中,您可以通过窗体的Handle属性简单地获取句柄:

IntPtr windowHandle = form.Handle;

如果您正在使用WPF,则需要使用WindowInteropHelper类来检索句柄:
IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle;

有没有办法将“选择证书”对话框定位在父窗体的中心? - Bharat Vasant
你也可以使用 windowHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle - Josh Correia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接