2012-12-24 27 views
5

Tôi có hai Biểu mẫu trong đơn đăng ký của mình. Họ cách tôi gọi Form 2 là như thế này:Biểu mẫu đóng khi không được

Mẫu 1:

private void btnTest_Click(object sender, EventArgs e) 
{ 
    DialogResult result = new System.Windows.Forms.DialogResult(); 
    Add_Link addLink = new Add_Link(); 
    result=addLink.ShowDialog(); 

    if (result == System.Windows.Forms.DialogResult.OK) 
    { 
     // 
    } 
} 

Mẫu 2:

private void btnAdd_Click(object sender, EventArgs e) 
{    
    if(validURL(txtSubLink.Text)) 
    { 
     HyperLink add = new HyperLink(txtSubLink.Text,txtSubText.Text,"URL"); 
     this.build = add;     
    } 
    else 
    { 
     MessageBox.Show("Valid URL Needed! " + txtSubLink.Text, "ERROR"); 
    }    
} 

Vấn đề của tôi là nếu người dùng nhấp vào nút Add, các chương trình thông báo lỗi (vì dữ liệu không hợp lệ hoặc hộp văn bản trống) NHƯNG nó đóng biểu mẫu. Tôi chỉ muốn người dùng đóng biểu mẫu và chuyển dữ liệu trở lại nếu hai hộp văn bản chứa dữ liệu thích hợp. Nếu hai hộp văn bản không chứa dữ liệu thích hợp HOẶC trống, khi người dùng nhấp vào Thêm, thông báo lỗi sẽ hiển thị và Form 2 sẽ vẫn mở, Làm cách nào để điều đó xảy ra ...?

+1

Tôi không thấy mã kích hoạt việc đóng cửa hình thức ... Tôi bối rối – miniBill

+0

@miniBill - Trong lần đầu tiên câu lệnh if vào mẫu 2 nó đóng nó bất kể hoặc không có lỗi hay không. –

Trả lời

8

Tôi nghi ngờ btnAdd của bạn có thuộc tính DialogResult được đặt thành OK. Bỏ đặt giá trị đó và sau đó thêm this.DialogResult = DialogResult.OK vào trình xử lý sự kiện của bạn khi bạn hài lòng với đầu vào.

private void btnAdd_Click(object sender, EventArgs e) 
{ 

    if(validURL(txtSubLink.Text)) 
    { 
     HyperLink add = new HyperLink(txtSubLink.Text,txtSubText.Text,"URL"); 
     this.build = add; 
     this.DialogResult = DialogResult.OK; 

    } 
    else 
    { 
     MessageBox.Show("Valid URL Needed! " + txtSubLink.Text, "ERROR"); 
    } 

} 
+0

Nevermind, quyền của bạn. Tôi đã đặt this.btnAdd.DialogResult = System.Windows.Forms.DialogResult.OK, thay vì this.DialogResult = DialogResult.Ok. Nó hoạt dộng bây giờ. Cảm ơn –

Các vấn đề liên quan