Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测用C编写的MMC 3.0管理单元的关闭事件#_C#_Mmc3 - Fatal编程技术网

C# 如何检测用C编写的MMC 3.0管理单元的关闭事件#

C# 如何检测用C编写的MMC 3.0管理单元的关闭事件#,c#,mmc3,C#,Mmc3,各位,我正在用C#创建一个MMC3.0管理单元程序。这里有一些范围节点和FormViewDescription,在这里我使用C#UserControl实例来显示一些数据。我的意图是,用户必须查看这些数据并将其更新到UserControl中,在UserControl上有一个保存按钮,用户在编辑结束时应按下该按钮,然后我将保留该更改 现在问题是,, 如果在做了一些更改之后,用户关闭了管理单元窗口,那么他的所有更改都将消失:(我需要在用户关闭此窗口之前使用一个“退出前保存”的对话框(或者类似的东西,您

各位,我正在用C#创建一个MMC3.0管理单元程序。这里有一些范围节点和FormViewDescription,在这里我使用C#UserControl实例来显示一些数据。我的意图是,用户必须查看这些数据并将其更新到UserControl中,在UserControl上有一个保存按钮,用户在编辑结束时应按下该按钮,然后我将保留该更改

现在问题是,, 如果在做了一些更改之后,用户关闭了管理单元窗口,那么他的所有更改都将消失:(我需要在用户关闭此窗口之前使用一个“退出前保存”的对话框(或者类似的东西,您知道任何编辑器程序的标准功能)。 但是找不到这样做的方法。有什么建议吗


非常感谢!

巧合的是,我刚刚创建了一个MMC,创建方式与您上面描述的大致相同,但经过多次搜索(和挫折),我找不到任何方法取消关闭事件。我建议更改您的方法,如下所述

首先,看看Windows中已经存在的大多数MMC是如何处理更改设置的。通常,如果要更改设置,请在列表视图中选择一个项目,然后右键单击“属性”以打开设置窗体并在其中进行更改

打开表单使开发人员能够控制表单的整个生命周期,并确保在关闭表单之前保存设置

所以我的建议是:

  • 创建表单视图
  • 添加您需要的任何状态信息
  • 将“编辑设置”按钮添加到 FormView
  • 使用创建Windows窗体 保存/取消+所有数据输入 控制
  • 使用 当您单击“编辑设置”按钮时,myForm.ShowDialog()
  • 处理保存/取消按钮 如果需要,请按并适当取消 数据是脏的

  • 我希望这会有所帮助。祝你好运!

    巧合的是,我刚刚创建了一个MMC,创建方式与你上面描述的方式大致相同,但经过多次搜索(和挫折感),我无法找到任何方法取消关闭事件。我建议按照以下说明更改您的方法

    首先,看看Windows中已经存在的大多数MMC是如何处理更改设置的。通常,如果要更改设置,请在列表视图中选择一个项目,然后右键单击“属性”以打开设置窗体并在其中进行更改

    打开表单使开发人员能够控制表单的整个生命周期,并确保在关闭表单之前保存设置

    所以我的建议是:

  • 创建表单视图
  • 添加您需要的任何状态信息
  • 将“编辑设置”按钮添加到 FormView
  • 使用创建Windows窗体 保存/取消+所有数据输入 控制
  • 使用 当您单击“编辑设置”按钮时,myForm.ShowDialog()
  • 处理保存/取消按钮 如果需要,请按并适当取消 数据是脏的

  • 我希望这会有所帮助。祝你好运!

    您好,非常感谢您的回复。我知道您的意思,事实上,我也考虑过基于弹出对话框的编辑方案。但就我而言,这可能是不可能的,因为以下原因:1.我有许多节点及其详细信息页面。因此创建弹出式编辑将花费大量时间每个节点都有一个页面,也是一个只读页面,用于一般显示。2.除了双重开发工作之外,我的客户不喜欢弹出对话框来配置每个节点。我可以想象,你已经感到沮丧,但对我来说好消息是我终于解决了我的问题。我是如何解决我的问题的:我使用了本机窗口拦截器截取父管理单元的WindProc方法,仅截取我正在使用的子节点。截取WM_Close消息,我的解决方案看起来棒极了。就像写字板实例一样,它在关闭前会提示yes、no、cancel,并根据用户选择执行它需要执行的操作。编程愉快,再次感谢!Aweso我!我猜你使用了这个类:我不知道为什么我在搜索过程中从来没有发现过这个问题!如果你有时间,试着发布一个代码示例,因为我相信有一天其他人也会从中受益。我已经用代码示例写了一篇博客文章,以便任何面临同样问题的人都能找到解决方法。顺便说一句,谢谢你花时间回答这个问题thread.Happy programming!这里是链接:嗨,非常感谢你的回复。我知道你的意思,事实上,我也考虑过基于弹出对话框的编辑场景。但对于我来说,这可能是不可能的,因为以下原因:1.我有很多节点及其详细信息页面。因此创建它需要大量时间e每个节点都有一个弹出编辑页面,也是一个只读页面,用于一般显示。2.除了双重开发工作之外,我的客户不喜欢弹出对话框来配置每个节点。我可以想象,你已经感到沮丧,但对我来说好消息是,我终于解决了我的问题。我是如何解决我的问题的:我使用了本机窗口截取器,用于截取父管理单元的WindProc方法,仅截取我正在使用的子节点。截取WM_Close消息,我的解决方案看起来棒极了。就像一个写字板实例,它在关闭前会提示yes、no、cancel,并根据用户选择执行它需要执行的操作。编程愉快,谢谢再一次!太棒了!我猜你使用了这个类:我不知道为什么我在搜索过程中从来没有发现过这个问题!如果你有时间,试着发布一个代码示例,因为我相信有一天其他人也会从中受益。我已经用代码示例写了一篇博客文章,以便任何面临同样问题的人都能找到解决方法。顺便说一句,谢谢你抽出时间来帮助我回答这个问题。快乐编程!以下是链接: