以编程方式关闭SaveFileDialog / OpenFileDialog而不使用pinvoke

雷诺塞罗斯

由于某些要求,我必须以SaveFileDialog编程方式关闭而不使用PINVOKE。

SaveFileDialog除了使用PINVOKE方式以外,还有其他关闭方式吗?我曾尝试关闭的所有者形式SaveFileDialog,但SaveFileDialog仍然存在。

我尝试过的

  1. 关闭形式执行ShowDialog()SaveFileDialog
  2. SaveFileDialog.Dispose()
讨厌

关闭owner传递给该ShowDialog(owner);方法窗口应该可以。例如:

private static Form CreateDummyForm(Form owner) {
    Form dummy = new Form();
    IntPtr hwnd = dummy.Handle; // force handle creation
    if (owner != null) {
        dummy.Owner = owner;
        dummy.Location = owner.Location;
        owner.LocationChanged += delegate {
            dummy.Location = owner.Location;
        };
    }
    return dummy;
}

[STAThread]
static void Main() {

    Form form = new Form();
    form.Size = new Size(400,400);
    Button btn = new Button { Text = "btn" };
    btn.Click += delegate {
        SaveFileDialog fsd = new SaveFileDialog();
        int timeoutMillis = 5000;
        Form dummy = CreateDummyForm(form); // Close disposes the dummy form
        Task.Delay(TimeSpan.FromMilliseconds(timeoutMillis)).ContinueWith((t) => { dummy.Close(); dummy.Dispose(); }, TaskScheduler.FromCurrentSynchronizationContext());
        fsd.ShowDialog(dummy);
        fsd.Dispose();
    };

    form.Controls.Add(btn);
    Application.Run(form);
}

    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以编程方式关闭节点程序并在不使用任何库的情况下重新启动它?

来自分类Dev

如何以编程方式关闭节点程序并在不使用任何库的情况下重新启动它?

来自分类Dev

以编程方式搜索Google而不使用Ajax

来自分类Dev

C#:了解是否已打开/关闭蓝牙适配器+使用的堆栈类型(以编程方式)

来自分类Dev

使用 gluon-mobile API 以编程方式打开/关闭 android 中的 Wifi

来自分类Dev

使用新的支持库版本时如何以编程方式关闭 A WearableActionDrawerView?

来自分类Dev

以编程方式关闭设备

来自分类Dev

以编程方式关闭searchview

来自分类Dev

以编程方式关闭Netty

来自分类Dev

iOS:以编程方式不使用任何图像的单选按钮

来自分类Dev

Facebook iOS SDK - 不使用 LoginButton 登录(以编程方式)

来自分类Dev

以编程方式使用chrome

来自分类Dev

如何使用用户控件返回代码中存在的事件处理程序以编程方式打开和关闭bottomappbar?

来自分类Dev

无法使用 jQuery.toggle() 以编程方式切换(仅关闭)Highchart 的默认上下文菜单

来自分类Dev

以编程方式强制关闭应用

来自分类Dev

以编程方式关闭/退出PWA

来自分类Dev

以编程方式使用尺寸等级

来自分类Dev

使用setViewControllers以编程方式导航

来自分类Dev

以编程方式使用.restext文件

来自分类Dev

使用setViewControllers以编程方式导航

来自分类Dev

以编程方式使用外部CSS

来自分类Dev

使用现有的相机应用程序以编程方式不使用预览捕获按钮拍照

来自分类Dev

通过OpenFileDialog和SaveFileDialog使用自定义屏幕键盘形式

来自分类Dev

OpenFileDialog & SaveFileDialog 在 C# 中使用过滤器弹出搜索

来自分类Dev

如何以编程方式在C#中进行编码(不使用XAML)

来自分类Dev

如何在不使用prefeb的情况下以编程方式创建精灵?

来自分类Dev

如何在不使用文件的情况下以编程方式将模板文本传递给视图?

来自分类Dev

安卓 以编程方式定义ListView的高度时,为什么不使用布局重力?

来自分类Dev

如果不使用HTML按钮,是否无法通过编程方式触发SVG动画?

Related 相关文章

  1. 1

    如何以编程方式关闭节点程序并在不使用任何库的情况下重新启动它?

  2. 2

    如何以编程方式关闭节点程序并在不使用任何库的情况下重新启动它?

  3. 3

    以编程方式搜索Google而不使用Ajax

  4. 4

    C#:了解是否已打开/关闭蓝牙适配器+使用的堆栈类型(以编程方式)

  5. 5

    使用 gluon-mobile API 以编程方式打开/关闭 android 中的 Wifi

  6. 6

    使用新的支持库版本时如何以编程方式关闭 A WearableActionDrawerView?

  7. 7

    以编程方式关闭设备

  8. 8

    以编程方式关闭searchview

  9. 9

    以编程方式关闭Netty

  10. 10

    iOS:以编程方式不使用任何图像的单选按钮

  11. 11

    Facebook iOS SDK - 不使用 LoginButton 登录(以编程方式)

  12. 12

    以编程方式使用chrome

  13. 13

    如何使用用户控件返回代码中存在的事件处理程序以编程方式打开和关闭bottomappbar?

  14. 14

    无法使用 jQuery.toggle() 以编程方式切换(仅关闭)Highchart 的默认上下文菜单

  15. 15

    以编程方式强制关闭应用

  16. 16

    以编程方式关闭/退出PWA

  17. 17

    以编程方式使用尺寸等级

  18. 18

    使用setViewControllers以编程方式导航

  19. 19

    以编程方式使用.restext文件

  20. 20

    使用setViewControllers以编程方式导航

  21. 21

    以编程方式使用外部CSS

  22. 22

    使用现有的相机应用程序以编程方式不使用预览捕获按钮拍照

  23. 23

    通过OpenFileDialog和SaveFileDialog使用自定义屏幕键盘形式

  24. 24

    OpenFileDialog & SaveFileDialog 在 C# 中使用过滤器弹出搜索

  25. 25

    如何以编程方式在C#中进行编码(不使用XAML)

  26. 26

    如何在不使用prefeb的情况下以编程方式创建精灵?

  27. 27

    如何在不使用文件的情况下以编程方式将模板文本传递给视图?

  28. 28

    安卓 以编程方式定义ListView的高度时,为什么不使用布局重力?

  29. 29

    如果不使用HTML按钮,是否无法通过编程方式触发SVG动画?

热门标签

归档