在不带showdialog()的窗口窗体和窗口之间传递变量

在编写Windows窗体应用程序时,总是需要从第二个窗体窗口(如选项窗体或弹出式搜索提示)获取变量。...

在编写Windows窗体应用程序时,总是需要从第二个窗体窗口(如选项窗体或弹出式搜索提示)获取变量。

大多数指南都会告诉您必须使用ShowDialog()打开第二个窗体,这会阻止用户在关闭第二个窗体窗口之前执行任何其他操作。例如,对于find/replace对话框来说,这并不是很好。对于自定义绘制的弹出窗体,它也不能很好地工作。

在窗体之间传递变量的快速方法是使用委托。可以为第二个窗体的关闭事件设置eventhandler,并在第一个窗体中处理该事件。这允许您在第二个窗体窗口关闭之前捕获变量。

对于本练习,我们假设有两种形式:

主窗体

选项窗体

我们将进一步假设,我们已经单击了某种按钮,通过Show()方法调用打开Opti***Form。现在让我们来看看魔术:

……. snip…….

Opti***Form theform = new Opti***Form(); theform.Closing += new CancelEventHandler(theform_Closing); theform.Show();

}

private void theform_Closing(object sender, CancelEventArgs e) {

   Opti***Form theform = (Opti***Form)sender;

   // Grab the variable from the opti*** form. The opti*** form should set this variable before it closes, and the variable should be marked as public.    string localvar = theform.thestringvariable;

}

 

就这些。

  • 发表于 2021-04-14 15:59
  • 阅读 ( 55 )
  • 分类:互联网

你可能感兴趣的文章

如何在microsoft outlook中创建和使用电子邮件模板

...想要的,点击“文件” 选择“另存为” 在“另存为”窗口中,将“另存为类型:”字段更改为“Outlook模板(*.oft)”,然后单击“保存” 您的模板现在可以使用了。 如何用outlook方式打开电子邮件模板 要按Outlook要求的方式...

  • 发布于 2021-04-01 19:09
  • 阅读 ( 214 )

如何在microsoft团队中创建快速投票

...队,然后单击新聊天信息或回复下的三个点。 在弹出的窗口中,选择“窗体”选项。 将加载一个新的窗体窗口,允许您提出单个问题。输入您的问题,两个答案,然后单击“添加选项”按钮,如果您需要更多的答案来选择。...

  • 发布于 2021-04-02 01:20
  • 阅读 ( 160 )

如何使用chsh在linux上更改默认shell

...以是相同的,也可以是不同的。 要设置登录shell,请使用不带参数的chsh: chsh 系统会提示您输入密码。然后,必须键入新shell的路径并按Enter键。 如果我们从另一台远程连接到这台测试计算机,一旦登录,我们就会发现自己身...

  • 发布于 2021-04-02 06:04
  • 阅读 ( 346 )

如何在linux上使用history命令

...命令: !37 要重复上一个命令,请再次键入两个感叹号,不带空格: !! 当您发出命令而忘记使用sudo时,这会很有用。键入sudo,一个空格,双感叹号,然后按回车键。 对于下面的示例,我们键入了一个需要sudo的命令。我们不需...

  • 发布于 2021-04-02 18:17
  • 阅读 ( 214 )

如何在linux上使用echo命令

echo命令非常适合将格式化文本写入终端窗口。它不一定是静态文本。它可以包括shell变量、文件名和目录。您还可以重定向echo以创建文本文件和日志文件。按照这个简单的指南来了解如何。 回声重复你让它重复的东西 宙斯喜...

  • 发布于 2021-04-03 00:31
  • 阅读 ( 191 )

bash需要知道的15个特殊字符

...tring="Dave Geek!" 此命令使用echo将单词“How to”打印到终端窗口。它通过参数展开检索存储在字符串变量中的值。因为我们附加了散列和文本“Dave”,所以在传递给echo之前,它会修剪掉字符串的这一部分。 echo How-To ${this_string#Dave...

  • 发布于 2021-04-03 03:58
  • 阅读 ( 228 )

你应该知道的

... Ctrl+Shift+R(Windows/Chrome操作系统)和Cmd+Shift+R(macOS):在不使用缓存内容的情况下重新加载当前页面 Esc(Windows/Chrome OS/macOS):停止页面加载 Ctrl+S(Windows/Chrome OS)和Cmd+S(macOS):将当前页面保存到计算机 Ctrl+P(Windows/Chrome OS...

  • 发布于 2021-04-03 04:07
  • 阅读 ( 171 )

如何向linux shell脚本添加gui

您可以在Bash脚本中使用GUI窗口、滑块、单选按钮、进度条等。学习如何使用zenity工具箱,并对Bash脚本进行整容。我们会教你怎么做。 Bash脚本是一种功能强大的编程语言,由于它内置在Bash shell中,因此每个人都可以随时使用它...

  • 发布于 2021-04-03 07:01
  • 阅读 ( 300 )

如何定制bash提示符

...olor_prompt”=yes];then行下输入彩色PS1变量。在else行下输入不带颜色的变量。 保存文件并关闭文本编辑器。例如,要将文件保存在nano中,请按Ctrl+O,按Enter,然后按Ctrl+X退出。 下次启动新的bashshell时,例如,通过在终端登录或打...

  • 发布于 2021-04-07 20:19
  • 阅读 ( 151 )

如何在linux上终止桌面应用程序或后台进程

...入到kill命令。 或者,跳过所有这些,运行“pkill-firefox”在不知道其编号的情况下终止firefox进程。pkill执行一些基本的模式匹配——它将尝试查找名称包含firefox的进程。 killall命令类似于pkill,但更精确一点。它将杀死所有使用...

  • 发布于 2021-04-10 23:25
  • 阅读 ( 199 )
gzndpc11714
gzndpc11714

0 篇文章

相关推荐