这样的话 没必要再加一个Form2啦
直接为Form1添加一个Form1_FormClosing事件在事搜乎件中写入以下代码
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (DialogResult.OK == MessageBox.Show("你确猛老定要关闭应用程序吗?", "关闭提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
{
this.FormClosing -= new FormClosingEventHandler(this.Form1_FormClosing)//为保证Application.Exit()时不再d出提示,所以将FormClosing事件取消
Application.Exit()//退出整个应用程序
}
else
{
e.Cancel = true //取消关闭事件世知悉
}
}
如果你确定想这样做 也可以 在Form1代码:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true//取消关闭事件
Form2 f2 = new Form2()
if (DialogResult.OK == f2.ShowDialog())//让Form2以模式窗口显示,就是说Form2显示时 Form1无法成为焦点
{
this.FormClosing -= new FormClosingEventHandler(this.Form1_FormClosing)//为保证Application.Exit()时不再d出提示,所以将FormClosing事件取消
Application.Exit()
}
}
Form2中两个按钮事件代码:
private void btnOK_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK
}
private void btnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel
}
你想在button b1 添加一个功能,一按取消就会退出窗口应该使用ActionListener 它是用于接收 *** 作事件的侦听器接口。对处理 *** 作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的 addActionListener 方法向该组件注册。在发生 *** 作事件时,调用该对象的 actionPerformed 方法。
而你使用的WindowAdapter是接收窗口事件的,所以你的button用它是不会触发事件的。
正确的写法应该是修改你的BUttonsb1类,如下:
class Buttonsb1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
//当点击的按钮为取消时,关闭程序
if("取消".equals((e.getActionCommand()))) {
System.exit(0)
}
/**
* 其他按含芦钮事件也可在链袜这里进行判断。
*e.getActionCommand()返回与此棚老激动作相关的命令字符串
*e.getSource()这个方法是返回组件的对象名,
* 因为你写的对象名是局部变量所以这地方没法使用。
* 建议你把这一块好好看一下JDK 的帮助文件
*/
}
}
PS:有问题可百度Hi我!~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)