messagebox กับ DialogResult
3 posters
หน้า 1 จาก 1
messagebox กับ DialogResult
พอดีผมเป็นคนนึ่งที่เพิ่งหัดเขียน C# โดยเขียน มีปัญหาที่ผมเขียน โค๊ต
event1 เมื่อกดปุ่ม exit ที่เมนู
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult ck = MessageBox.Show("You are about to exit program1", "Yes or No",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if (ck == DialogResult.Yes)
{
Application.Exit();
}
}
event 2 เมื่อปิดฟอร์ม
private void Main_FormClosing(object sender, EventArgs e)
{
DialogResult ck = MessageBox.Show("You are about to exit program1", "Yes or No",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if (ck == DialogResult.Yes)
{
Application.Exit();
}
}
แต่เมื่อเรากดปุ่มใดปุ่มหนึ่ง จะมี Messagebox ขึ้นมาให้กดยืนยันถึง 2 รอบ คือ มันทำการที่ 2 event เราจะมีวิธีเขียนโค๊ตบล็อคการทำงานที่ขึ้นมา ซ้ำกันแบบนี้อย่างไร
event1 เมื่อกดปุ่ม exit ที่เมนู
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult ck = MessageBox.Show("You are about to exit program1", "Yes or No",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if (ck == DialogResult.Yes)
{
Application.Exit();
}
}
event 2 เมื่อปิดฟอร์ม
private void Main_FormClosing(object sender, EventArgs e)
{
DialogResult ck = MessageBox.Show("You are about to exit program1", "Yes or No",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if (ck == DialogResult.Yes)
{
Application.Exit();
}
}
แต่เมื่อเรากดปุ่มใดปุ่มหนึ่ง จะมี Messagebox ขึ้นมาให้กดยืนยันถึง 2 รอบ คือ มันทำการที่ 2 event เราจะมีวิธีเขียนโค๊ตบล็อคการทำงานที่ขึ้นมา ซ้ำกันแบบนี้อย่างไร
Guyhanami- จำนวนข้อความ : 3
Join date : 28/05/2010
Re: messagebox กับ DialogResult
วิธีแก้ไขทำได้โดยนิยามอีกเมธอดหนึ่ง แล้วให้เมธอดทั้งสองที่ว่ามาไปเรียกหา ท้้งนี้ก็เพื่อให้เกิดความปรองดอง ลดความเป็นสองมาตรฐาน ยกตัวอย่างเช่น
void WantToQuitMan()
{
DialogResult ck = MessageBox.Show("You are about to exit program1", "Yes or No",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if (ck == DialogResult.Yes)
{
Application.Exit();
}
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
WantToQuitMan();
}
private void Main_FormClosing(object sender, EventArgs e)
{
WantToQuitMan();
}
void WantToQuitMan()
{
DialogResult ck = MessageBox.Show("You are about to exit program1", "Yes or No",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if (ck == DialogResult.Yes)
{
Application.Exit();
}
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
WantToQuitMan();
}
private void Main_FormClosing(object sender, EventArgs e)
{
WantToQuitMan();
}
ขอบคุณครับที่ตอบคำถาม
แต่พอผมตั้งคุณสมบัติว่าให้ปุ่มไหนเป็น cancelButton แล้วกำหนด Source code แบบด้าน แต่พอกด No มันก็เด้งออกให้เลย ไม่รู้ว่าเป็นเพราะอะไร แต่พอไม่ตั้งเป็นcancelutton มันกด NO มันก็ไออกอ่ะครับ
แล้ว Source code ด้านบนมันก้อเด้งมาให้เราตอบ 2 ครั้งเหมือนเดิม
จะให้ส่ง Source code ไปเล่นดูไหม
แล้ว Source code ด้านบนมันก้อเด้งมาให้เราตอบ 2 ครั้งเหมือนเดิม
จะให้ส่ง Source code ไปเล่นดูไหม
Guyhanami- จำนวนข้อความ : 3
Join date : 28/05/2010
งั้นให้แก้
ถ้างั้นให้แก้เป็น
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void Main_FormClosing(object sender, EventArgs e)
{
DialogResult ck = MessageBox.Show("You are about to exit program1", "Yes or No",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if (ck == DialogResult.Yes)
{
Application.Exit();
}
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void Main_FormClosing(object sender, EventArgs e)
{
DialogResult ck = MessageBox.Show("You are about to exit program1", "Yes or No",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if (ck == DialogResult.Yes)
{
Application.Exit();
}
}
ขอบคุณครับที่ตอบคำถาม
ยังไม่ได้เหมือนเดิมแต่ผมเปลี่ยนไปปิด controlbox เอาง่ายดี ขอบคุณครับ
มีเรื่องอยากถามหน่อยว่า
เราต้องการให้ text วิ่ง วนๆ ไปเรื่อยๆอ่ะครับ ที่ From
และเราสร้าง shortcutkey ให้กับ button ได้ไหม ไม่ใช่ปุ่มที่เมนูน่ะครับ
มีเรื่องอยากถามหน่อยว่า
เราต้องการให้ text วิ่ง วนๆ ไปเรื่อยๆอ่ะครับ ที่ From
และเราสร้าง shortcutkey ให้กับ button ได้ไหม ไม่ใช่ปุ่มที่เมนูน่ะครับ
Guyhanami- จำนวนข้อความ : 3
Join date : 28/05/2010
ลองดูนะครับ
ไม่รู้ว่าทำได้หรือยังที่ว่าให้ message ตอนปิดอันนี้ผมก็ไม่ได้เขียนเองนะครับ หามาให้ลองดูครับผมลองดูแล้วก็ใช้ได้ดี
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnClosing(CancelEventArgs e)
{
DialogResult result = MessageBox.Show("คุณต้องการออกจากโปรแกรม ใช่หรือไม่?", "Confirm exit",
MessageBoxButtons.OKCancel);
e.Cancel = result == DialogResult.Cancel;
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
ได้มาจากเว็ปนี้ครับบ
http://bytes.com/topic/c-sharp/answers/277846-confirm-window-close
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnClosing(CancelEventArgs e)
{
DialogResult result = MessageBox.Show("คุณต้องการออกจากโปรแกรม ใช่หรือไม่?", "Confirm exit",
MessageBoxButtons.OKCancel);
e.Cancel = result == DialogResult.Cancel;
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
ได้มาจากเว็ปนี้ครับบ
http://bytes.com/topic/c-sharp/answers/277846-confirm-window-close
bundit- จำนวนข้อความ : 6
Join date : 18/05/2010
หน้า 1 จาก 1
Permissions in this forum:
คุณไม่สามารถพิมพ์ตอบ
|
|