在 Powershell 中捕获 Windows 窗体关闭事件

2023-12-30

我有一个窗口窗体。当我单击 Windows 窗体控制框的关闭 (X) 按钮时,我想显示一条消息或可能执行某些操作。

下面是代码:

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Windows.Forms.Application]::EnableVisualStyles() 

$frmTest = New-Object System.Windows.Forms.Form
$frmTest.Size = New-Object System.Drawing.Size(640,480)
$frmTest.MaximizeBox = $False
$frmTest.ShowDialog()

当用户单击“关闭”(X) 按钮时,我想显示一个消息框:

$choice = [System.Windows.Forms.MessageBox]::Show('Are you you want to exit?','TEST','YesNo','Error')
switch($choice)
{
    'Yes'
     {
         $frmTest.Close()

     }
}

我找到了这篇文章:表单上的消息关闭 https://www.sapien.com/forums/viewtopic.php?t=10518,但我不知道如何使用它。请指教。谢谢


要捕获的事件是Closing https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.form.closing?view=netframework-4.8具有事件参数的形式的事件,允许您取消事件。要了解如何在 PowerShell 中使用事件参数,您可能需要查看Windows 窗体控制 PowerShell 中的事件 - 使用 Sender 和 EventArgs https://stackoverflow.com/a/51130615/3110834.

Example

Add-Type -AssemblyName System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$form.Text ="Test"
$form.Add_Closing({param($sender,$e)
    $result = [System.Windows.Forms.MessageBox]::Show(`
        "Are you sure you want to exit?", `
        "Close", [System.Windows.Forms.MessageBoxButtons]::YesNoCancel)
    if ($result -ne [System.Windows.Forms.DialogResult]::Yes)
    {
        $e.Cancel= $true
    }
})
$form.ShowDialog() | Out-Null
$form.Dispose()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Powershell 中捕获 Windows 窗体关闭事件 的相关文章

  • Powershell tail 多个文件命令

    我可以通过以下命令尾随一个文件 Get Content Path C log1 txt Tail 10 Wait 如何将其扩展到多个文件 我尝试了以下方法但没有成功 Get Content Path C log1 txt C log2 tx
  • 在 C# Winforms 应用程序中嵌入 Windows XP 主题

    我有一个旧版 C Windows 窗体应用程序 其布局是根据 Windows XP 默认主题设计的 由于需要将其作为 Citrix 应用程序进行分发 该应用程序现在看起来像经典主题应用程序 因为 Citrix 不鼓励使用主题系统服务 所以
  • 在powershell的列中处理带有换行符的CSV

    目前 我有一个系统 它创建一个像下面这样的分隔文件 在其中我模拟了偶尔出现在列中的额外换行符 列 1 列 2 列 3 列 4 文本1 文本2 LF 文本3 LF 文本4 CR LF 文本1 文本2 LF LF 文本3 文本4 CR LF 文
  • TreeView所有者在选择时绘制故障

    我正在尝试向标准 System Windows Forms TreeView 控件的元素添加更多图标 我的计划是只更改树视图控件的标签区域 但它显示出奇怪的行为 如果我单击一个节点来选择它 则按下鼠标按钮时 背景将使用突出显示颜色正确绘制
  • Powershell:复制时自动更改文件属性

    我有一个只读文件的文件夹 当我将这些文件之一复制到测试位置时 我希望能够复制它们而不保留其原始属性 我可以做到这一点 但这很长 copy item srcfilefullname destfilefullname set itemprope
  • 如何在 powershell 中显示带有 .ps1xml 文件的嵌套集合

    我有一个像这样的分层对象结构 public class Department public string Name get set public string Manager get set public Employee Employee
  • 为什么 Application.Exit 无法工作?

    我有一个应用程序在取消对话框时出现奇怪的错误 如果该框被取消 应用程序将无法继续 因此它会退出 但由于某种原因它无法工作 因此它会继续运行并崩溃 我调试了这个问题 并且不知何故应用程序在 Application Exit 调用之后运行 我正
  • 如何防止控件在 TableLayoutPanel 内调整大小时视觉上滞后?

    我有一个基于多个嵌套的中等复杂度的布局TableLayoutPanels 调整窗体大小会导致更深嵌套表内的控件在视觉上滞后于调整大小 首先 这使得它们看起来像是在调整表单大小时四处移动 但更糟糕的是 当它们滞后到足以离开分配的表格单元格时
  • 将组合框添加到 DataGridView 标头

    当我运行代码时 dataGridView TopLeftHeaderCell 也有一个组合框 我怎样才能改变这一点 这是我的代码 public void AddHeaders DataGridView dataGridView for in
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 以编程方式更改 DataGridView 行上的只读模式

    在不解释整个上下文的情况下 我的问题基本上是这样的 我在 Windows 窗体上有一个 datagridview 它绑定到实体框架 DbSet dbSet
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • 如何调整 Windows 窗体以适应任何屏幕分辨率?

    我知道这是重复的问题 但我检查了所有其他相关问题 他们的答案没有帮助 结果仍然与屏幕截图 2 中所示相同 我是 C Windows 窗体新手 如截图1所示 我有Form1有一些控件 每组控件都放在一个面板中 我在 PC1 中设计了应用程序
  • C# Winforms Designer 无法打开,因为它无法在同一程序集中找到类型

    我收到以下错误 找不到类型 My Special UserControl 请确保引用包含此类型的程序集 如果此类型是您的开发项目的一部分 请确保已使用当前平台或任何 CPU 的设置成功构建该项目 但没有任何意义的是My Special Us
  • 在 C# 中选择动态创建的列表框项目

    我动态创建了一个Listbox并用一些项目填充它 在输入一个点后Textbox我想展示Listbox以便用户可以使用箭头键选择任何项目 到目前为止我已经做了所有事情 当用户在其中输入一个点时Textbox The Listbox显示 但方向
  • 如何从 C# 运行 PowerShell 脚本

    我正在尝试使用 C 运行 PowerShell 脚本 但没有成功 这是我的功能 private void ExecutePowerShellCommand string scriptfile RunspaceConfiguration ru
  • 有没有办法在 MS Windows(Powershell 或 CMD)的 ripgrep 中转义引号?

    我想找一个字符串 Hello Hello 以双引号开头 在文本文件中使用ripgrep 通常 在 Bash 或 ZSH 中 这可以通过用反斜杠转义或用单引号括起来来实现 rg Hello rg Hello 然而 在 MS Windows P
  • 如何从 -WhatIf 处理中排除块?

    我正在编写一个 Powershell cmdlet 它需要执行命令并将其 stderr 输出存储到临时文件中以供以后处理 此输出列出了 cmdlet 稍后可能使用的 COM 端口 mostly side effect free inform
  • 在 .Net 中保持 Powershell 运行空间打开

    我正在尝试从 VB Net 中运行一些 PowerShell 代码 如果您知道的话 C 编码器也可能会有所帮助 代码的第一部分 我需要使用密码连接到 na 控制器 并且需要保持连接打开 我还有其他命令需要通过单击按钮来运行 获取文件 显示文
  • 当我在组合框中选择一个项目时,如何防止 TextChanged 事件?

    我有一个TextChanged http msdn microsoft com en us library system windows forms control textchanged aspx我的事件ComboBox http msd

随机推荐

  • Apache 2.4 无法在 Mac OS 10.8 上加载 php5.5

    我正在尝试在装有 Mac Os 10 8 5 的 Mini Mac 中使用 Apache 2 4 7 和 php5 5 Apache 2 4 7 按照以下说明安装here http mac dev env patrickbougie com
  • DPDK pdump 无法热插拔添加设备

    我正在尝试使用 dpdk pdump 从 dpdk 控制下的 NIC 捕获 tx 数据包 Setup DPDK 18 11 4 In config common base CONFIG RTE LIBRTE PMD PCAP y and C
  • 如何在 ASP.NET MVC 中以 BDD 风格进行单元和集成测试?

    我正在学习使用 ASP NET MVC 进行行为驱动开发 并且基于a post http blog stevensanderson com 2010 03 03 behavior driven development bdd with sp
  • OpenShift V3 的 DNS 条目

    我最近购买了一个域名 并尝试将此域名重定向到 OpenShift v3 Web 应用程序 这是我第一次设置这样的东西 所以请容忍我的无知 通常 OpenShift 提供一个主机名 类似于 myapp myproject preview op
  • 使用 facebook like 按钮时,评论弹出窗口消失,并出现“确认”按钮

    我试图在我的 WordPress 博客中包含一个类似 facebook 的按钮 并带有相应的 opengraph 标签来显示图像 描述等 当我测试它时 喜欢和不喜欢很多来检查结果 在单击喜欢按钮后 弹出的评论闪烁 然后突然出现一个 确认 链
  • Ionic 无法打开 Cors

    我正在尝试从 ionic android 应用程序中的实时服务器获取 API 数据 但它返回此错误 Access to XMLHttpRequest at https example com api categories from orig
  • Make 中的默认规则

    make 中是否有一种机制允许在任何地方使用默认的全局隐式规则 类似于内置规则 Make 提供了一些用于编译 C C Fortran 文件的内置隐式规则 甚至不需要Makefile对于简单的情况 然而 当编译其他语言 例如Go编程语言文件
  • 如何使用spaCy进行文本预处理?

    如何使用 python 在 spaCy 中执行预处理步骤 例如停用词删除 标点符号删除 词干提取和词形还原 我在 csv 文件中有文本数据 如段落和句子 我想做文本清理 请举例说明在 pandas 数据框中加载 csv 这可能有帮助 imp
  • 在多个提升组件之间共享服务

    我创建了两个单独提升的组件 在两个不同的视图中 并且我尝试在这两个组件之间共享一个独特的服务 单例 该服务用于操作这些组件之一 我的服务 Injectable export class ModalContainerService priva
  • 不允许 Nuget 和 Teamcity Agent 运行此配置

    我遇到了一个有趣的问题 我想使用 Teamcity 构建 nuget 包 我确实设置了非常简单的配置 干得好 JetBrains 但是我无法在我们的构建代理之一上运行它 该代理确实通过了配置的代理要求 但在其名称旁边显示以下内容 不允许运行
  • 如何在 IDEA 中从 Gradle 设置 checkstyle 配置

    我在 IDEA 中使用 Checkstyle 插件 我想为不同的模块设置不同的 checkstyle 配置 我使用 gradle 作为构建工具 版本 4 我想编写一个修改模块相应 iml 文件的任务 知道怎么做吗 我第一次尝试修改iml文件
  • 如何水平对齐跨度文本和输入元素

    我正在努力创建一个搜索表单 在这个搜索表单中 我使用了
  • CMake Eclipse 构建配置

    我想使用 CMake 生成 Eclipse CDT 项目 其中生成的 Eclipse 项目包含定义的构建类型作为 IDE 中的可选构建配置 例如 if CMAKE CONFIGURATION TYPES set CMAKE CONFIGUR
  • Networkx:使用公共函数进行边权重计算

    假设我有一个函数euc 2d graph n1 n2 计算同一图的两个节点之间的欧几里德距离 每个节点都有一个给定的pos x y 这是在图创建时分配的 NetworkX 提供了一个函数来获取图的所有边的总权重 即graph size we
  • 如何返回带有捕获的 unique_ptr 的 lambda [重复]

    这个问题在这里已经有答案了 使用这个 https stackoverflow com a 16968463 629530 https stackoverflow com a 16968463 629530 我可以在 lambda 中捕获 u
  • 密码自动完成功能不适用于我的网络应用程序(在 Firefox 中)

    我已经用 HTML 创建了一个登录提交表单 但由于某种原因 自动完成功能在 Firefox 中不起作用 这是 Firefox 中发生的情况 我提供用户名和密码 然后单击登录按钮 Firefox 会提示我是否要记住密码 我按 记住 并登录即可
  • Vagrant 来测试厨师食谱 - 但如何处理私人 git

    我使用 vagrant 来测试我的厨师食谱 问题是我已经克隆了我的私人存储库并且机器没有被认证 我如何自动对 boostrap Chef 进行 git 身份验证 我正在使用 vagrant ubuntu 11 10 with Chef Th
  • throw new TypeError('OAuth2Strategy 需要 clientID 选项'); }

    这是出现的错误 该怎么办 我创建了一个 socket io 聊天应用程序 这是一个使用 nodejs socket io 和 package json 的聊天应用程序 包 json dependencies body parser 1 15
  • 如果在构造函数中设置 DataContext,在调用 InitializeComponent() 之前还是之后设置它有什么关系吗?

    我有一个 WPF 窗口 它在构造函数中接受一些参数 然后我使用这些构造函数来设置窗口的状态 该构造函数过程的一部分是实例化我的视图模型类 然后将其设置为窗口DataContext 我的问题是我什么时候应该设置我的DataContext等于我
  • 在 Powershell 中捕获 Windows 窗体关闭事件

    我有一个窗口窗体 当我单击 Windows 窗体控制框的关闭 X 按钮时 我想显示一条消息或可能执行某些操作 下面是代码 void System Reflection Assembly LoadWithPartialName System