如何确定表单是否已被用户或您的代码关闭?

2024-03-08

我有一个表单(让我们称之为父表单),可以从中加载另一个“始终在顶部但不是模态”表单(就像对话框但不是对话框 - 用户可以将新的“子表单”保留在原处并继续处理父表单)。

用户第一次打开该子表单时,会加载并显示一些数据。如果他们关闭表单,我实际上会拦截关闭并简单地隐藏表单 - 这样下次他们打开它时,我们就不必重新加载数据(如果有的话,数据也不会发生很大变化)。

if (e.CloseReason == CloseReason.UserClosing)
{
    e.Cancel = true;
    this.Hide();
}

稍后,当父窗体关闭时,我想强制子窗体正确关闭 - 在其基本窗体中运行一些代码以存储其位置和大小以供下次使用。

目前我打电话childForm.Dispose()来自父表单,它很好地清理了事情,但并没有给我太多的控制权。

但是,如果我调用 childForm.Close() 方法,e.CloseReason 仍然是“CloseReason.UserClosing”。

有没有办法区分用户关闭表单和我的代码(在父表单中)关闭它?


只需添加一个特殊的“ReallyClose()" 进行清理的方法,并在您确实想要关闭表单时调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确定表单是否已被用户或您的代码关闭? 的相关文章

  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么

随机推荐

  • 运行任务时显示 Gradle 控制台

    当我在 Android Stduio 中运行 gradle 任务时 如何显示 gradle 控制台 当我执行任务时 会弹出运行对话框 但控制台不会弹出 我希望能够看到 gradle 控制台 以便可以看到输出 但我不想永久看到 gradle
  • 通过多次变换替换和维护角色实体

    问题 我们的系统中存在各种格式的字符实体 例如 amp and amp amp 如果需要的话 我们需要将它们转换为标准 XML 字符实体 amp lt gt apos quot 然后通过几个单独的转换将它们维护为实体 给定 XML
  • MPI_Isend 和 MPI_Irecv 似乎导致死锁

    我在 MPI 中使用非阻塞通信在进程之间发送各种消息 然而 我似乎陷入了僵局 我用过PADB see here http padb pittman org uk 查看消息队列并得到以下输出 1 msg12 Operation 1 pendi
  • Windows 应用商店应用程序:更改应用程序栏按钮的图标?

    我想更改 Windows 应用商店应用程序中 AppBar 按钮的图标 我发现 AppBar 按钮具有如下所示的 XAML 标记
  • Websphere Liberty Profile 中的 Java EE-Timer / @Schedule

    我想使用计时器服务 特别是 Schedule注解 http docs oracle com javaee 6 api javax ejb Schedule html 在 WebSphere Liberty Profile 中 那可能吗 有一
  • 如何在WebBrowser Control中设置当前的document.domain以避免“访问被拒绝”?

    如何设置电流document domain在 WebBrowser Control 中避免跨域调用 XMLHTTP 请求或 Iframe frame 访问 中的 访问被拒绝 我试过了 CurrentDocument WebBrowserCo
  • codeigniter 活动记录,生成,但不执行查询

    我正在工作一个库 需要将 sql 查询作为字符串来完成其工作 我正在使用 CodeIgniter 及其数据库类的活动记录实现 我知道我可以像这样回显 SQL 语句 但我只想生成这个查询 而不是执行它 echo this gt db gt l
  • 如何更改android中的启动活动?

    我有两项活动 即login and calendar在我的应用程序中 目前我的startup活动是 calendar 我想运行login作为第一个活动不是calendar 启动活动 Launcher Activity 在项目的 Androi
  • Clojure 符号用作函数时有什么作用?

    在尝试解决 4Clojure 问题时 通用计算引擎 http www 4clojure com problem 121 涉及重新实现评估 我不小心最终调用了这样的内容 apply 16 8 而不是预期的 apply 16 8 这带来了返回的
  • 如何在组织模式下匹配/解析任务结束时的注释

    我正在寻找一种与我所说的 注释 相匹配的方法 注释 是组织任务的最后一行 或一组行 上面写着 These are the notes of the task 我真的写了一篇long正则表达式may完成这项工作 但我希望 org mode 已
  • mysql、转储、数据库恢复

    我已使用以下命令转储数据库 mysqldump uuser ppassword db name gt file 然后我完全删除了我的数据库 drop database db name 然后我创建了一个新数据库 create database
  • R8 从 AndroidStudio 中抛出 NullPointerException,但不会通过 gradlew 从命令行抛出

    Problem 当我单击 Android Studio 中的调试图标时 我从 R8 收到此 NullPointerException Executing tasks app assembleDebug in project Users ga
  • 显示多列复选框列表

    我目前显示的复选框列表如下 foreach var employee in Model Employees Html CheckBox employee Name br 如果您想要一长列复选框 这非常有用 但我的列表越来越长 所以我想将其显
  • 给定一组线段,找到面积最大的矩形

    想象一下我给了你一组如下形式的线段 x1 y1 x2 y2 我们有两个点定义了一条线段 就我们的目的而言 该部分始终是水平或垂直的 我想找到由线段包围的任何矩形的最大面积 例如 当给定以下线段集时 结果应为绿色阴影区域的面积 到目前为止 我
  • Android android.credentials.UNLOCK 初始化无密码密钥库

    有一个随机密钥通过 AES 加密本地凭据 我按照下面的教程尝试存储securely该密钥稍后可以解密 nelenkov blogspot co uk 在 Android 中存储应用程序秘密 http nelenkov blogspot jp
  • 线程池是如何工作的,以及如何在像 NodeJS 这样的 async/await 环境中实现它?

    我需要运行一个函数int f int i 有 10 000 个参数 由于 I O 时间的原因 执行大约需要 1 秒 在像Python这样的语言中 我可以使用线程 或者async await 我知道 但是我稍后会谈到 来并行化这个任务 如果我
  • 修订控制和托管比较[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道这个问题以前已经以不同的形式被问过很多次了 我是一个无知的人 因为我认为我可以在讨论中添加任何内
  • 如何显示大于手机屏幕尺寸的图像?

    我有一个问题 但我没有找到真正一致的答案 这就是为什么我向你们伸出援手 我一直在尝试从以下意义上为我的应用程序实现 取景器 效果 我有一张巨大的图片 我希望能够 飞 过 水平和垂直滚动 直到到达边界 到目前为止 对此 或类似问题 的所有流行
  • UWP 从异步工作线程更新 UI

    我正在尝试实现一个长期运行的后台进程 定期报告其进度 以更新 UWP 应用程序中的 UI 我怎样才能做到这一点 我已经看到了几个有用的主题 但没有一个包含所有内容 而且我无法将它们全部放在一起 例如 假设用户选择了一个非常大的文件 并且应用
  • 如何确定表单是否已被用户或您的代码关闭?

    我有一个表单 让我们称之为父表单 可以从中加载另一个 始终在顶部但不是模态 表单 就像对话框但不是对话框 用户可以将新的 子表单 保留在原处并继续处理父表单 用户第一次打开该子表单时 会加载并显示一些数据 如果他们关闭表单 我实际上会拦截关