01/10/2018, 08:58

Hỏi đáp thoát trong c#

Mình tạo 2 form. 1 form chính và 1 form dùng để làm messageBox custom.
trên messageBox custom có 1 textbox cho người dùng nhập key vào, key này dùng để kiểm tra khi thoát, nếu key đúng thì cho thoát chương trình, key sai thì k được thoát.

    public hhddkk()
    {
        InitializeComponent();
    }
    static hhddkk redmix;
    static DialogResult result = DialogResult.No;
    public static DialogResult Show()
    {
        redmix = new hhddkk();
        string str = redmix.textBox1.Text;
        str = str.Trim();
        str = str.ToLower();
        redmix.ShowDialog();
     
        if (str == "i love you")
        {
            return DialogResult.OK;
        }
        else
        {
            return DialogResult.No;
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Lỳ à, cho treo máy tiếp, ahihi ", "Thông báo");
    }

code trên là của messageBox của mình và các sự kiện click.

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = false;
        DialogResult result = hhddkk.Show();
        if (result == DialogResult.No)
        {

            e.Cancel = true;
        }
        else
        {
            e.Cancel = false;
        }
    }

Code trên là sự kiện lúc đúng form chính của mình. Không biết lỗi sao mà nó k hoạt động giống ý muốn
Ai rành c# help em vớiPreformatted text

Tú Trần Đình viết 11:10 ngày 01/10/2018

Không biết có sai quy định gì không, hay sao mà k ai help mình vậy
vì làm app vui thôi nên k đặt tên gì cả

*grab popcorn* viết 11:07 ngày 01/10/2018

Bạn bị lỗi gì và ntn

Tú Trần Đình viết 11:01 ngày 01/10/2018

mình nhập key đúng rồi, nhung k thoát được app. Cái app là nó sẽ chụp màn hình khi load form và gắn vào pictureBox và khóa hết task để k dc kill cái app, trừ khi nhập key đúng thì dc phép tắt cái app, ý tưởng là thế, nhưng mình nhập key rồi nhấn yes thì nó k thoát dc và cái pictureBox vẫn nằm đó k làm gì dc hết

*grab popcorn* viết 11:05 ngày 01/10/2018

Mình chưa hiểu lắm @_@
Bạn có thể cho mình xin full source để debug được không?
Tks

Tú Trần Đình viết 10:58 ngày 01/10/2018

https://www.fshare.vn/file/AAACJDYIE58F của bạn đây, cẩn thận đồ chơi nguy hiểm đó nha

*grab popcorn* viết 10:59 ngày 01/10/2018

Khi bạn gọi abc.show() thì nó đã đọc giá trị của textbox rồi.
Mà lúc này textbox chưa có gì -> đọc sai-> return sai kq

Tú Trần Đình viết 11:02 ngày 01/10/2018

if (result == DialogResult.No)
{

        e.Cancel = false;
    }
    else
    {
        e.Cancel = false;
    }

thử để e.canel = false ở cái kia nó vẫn k thoát luôn.

Văn Dương viết 11:13 ngày 01/10/2018

Khi gọi form.Show nó sẽ không chờ form được đóng lại mà chạy qua lệnh đó luôn. Nên cái biến result nó chưa chắc mang giá trị đúng.
Bạn phải gọi showdialog.

Tú Trần Đình viết 11:04 ngày 01/10/2018

Không hiểu lắm, ý bạn là làm kiểu này hở
public static DialogResult showdialog()
{

    }
Văn Dương viết 11:09 ngày 01/10/2018

Trong cái form1_formclosing thì gọi
hhddkk.ShowDialog();

Tú Trần Đình viết 11:12 ngày 01/10/2018

không được vì cái messageBox này làm bằng Form , nên chỉ gọi dc hhddkk.Show à

*grab popcorn* viết 11:02 ngày 01/10/2018
  1. Đổi tên cái Show đi thành MyShow hay cái gì đó
  2. Đổi vị trí cái remix.showDialog ngay sau remix = new hhddkk()
  3. Đổi cái Application.Exit() ở form hhddkk thành this.Close()
  4. Thay cái hhddkk.Show thành csai tên đổi ở bước 1.
  5. Done
Tú Trần Đình viết 11:01 ngày 01/10/2018

Hay quá, cảm on nhiều nghen. lâu lâu đụng lại khổ ghê.

Bài liên quan
0