C#中点击button按钮程序会自动退出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中点击button按钮程序会自动退出相关的知识,希望对你有一定的参考价值。
是这样的,我添加了一个button按钮,当按钮被按下时,打开新的窗口,代码如下:
private void back_Click(object sender, EventArgs e)
this.Close();
Form1 f1 = new Form1();
f1.ShowDialog();
但是在运行的时候,我点击button按钮时,程序直接就退出了
为什么用close不行啊?还有,写成f1.show()好像也不行,只能showdialog,求解释
追答this为主线程,f1为子线程,主关闭,子当然就关闭了
追问但是我如果只改hide,不改showdialog,继续用f1.show还是会自动退出
追答啥,具体不详,无法解答
参考技术A Form1 f1 = new Form1();这句在你的program.cs里面声明为public就行了。C#按钮click事件是如何触发的
比方说你点了一个按钮,程序怎么知道应该用哪个函数来处理这个动作呢?那么EventHandler会告诉程序:"button1(sender)被点击(e)了,请调用对应的处理函数"。当然这个函数是谁,这个函数要做什么,是由你自己写的。
再深入一层,这个过程实际上就是:你的动作被windows捕获,windows把这个动作作为系统消息发送给程序(可以看message结构),程序从自己的消息队列中不断的取出消息,并在消息循环中寻找对应的处理方式,这时message结构中的类似于sender和e就起到了引导程序使用正确的处理函数的作用。
归根究底,这个sender和e及其一整套的处理方式,只不过是windows消息机制的另外一种表现罢了。
找到令我满意的答案了,多谢各位的指导!
在Winform中,可以使用MyBtn.PerformClick()调用MyBtn的Click事件。
可以这样做:
using System.Windows.Automation.Peers;
using System.Windows.Automation.Provider;
private void DoButtonClick()
ButtonAutomationPeer bam = new ButtonAutomationPeer(MyBtn);
IInvokeProvider iip = bam.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
iip.Invoke();
调用Window的Close方法,通过这个方法去触发Closing事件,比如:
Xaml:
<Window x:Class="WindowClosingEvent.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
AllowsTransparency="false" WindowStyle="None"
Foreground="x:Null" Background="#FF626060"
Title="MainWindow" Width="400" Height="613" AllowDrop="True" Closing="Window_Closing" BorderThickness="2"WindowState="Normal">
<Grid>
<Button Click="Button_Click"/>
</Grid>
</Window> 参考技术B 第一步、绑定单击事件;
button1.Click+=new EventHandler(but_Click);
第二步、编写Click事件处理方法;
例如:
private void but_Click(object sender, EventArgs e)
//Click事件处理内容
参考技术C 你点按钮的时候,系统自动触发的。
或者你也可以调用按钮的PerformClick方法触发。 参考技术D 按钮上增加一个click事件 自动就会触发
你可以在初始化页面的时候添加一个click事件
比如
this.button1.Click += new System.EventHandler(button1_Click);
private void button1_Click(object sender, EventArgs e)
参考资料:回答即可得两分,帮人就是帮自己!
以上是关于C#中点击button按钮程序会自动退出的主要内容,如果未能解决你的问题,请参考以下文章