2010-06-21 41 views
5

Có thể ngăn không cho MainForm tải hoàn toàn trong quá trình khởi động một ứng dụng (không chắc chắn nó được gọi như thế nào, Khởi tạo thành phần có thể)?Cách đóng ứng dụng trước khi được nạp đầy đủ?

Tôi đã thử:

public MainForm() 
{ 
    if (true) 
    { 
     Application.Exit(); 
     return; 
    } 
    InitializeComponent(); 
} 

public MainForm() 
{ 
    if (true) 
    { 
     this.Close(); 
     Application.Exit(); 
     return; 
    } 
    InitializeComponent(); 
} 

và không có "trở lại"; cũng.

Thứ nhất thực sự không có gì, trong khi giải pháp thứ hai ném lên "Không thể truy cập đối tượng được xử lý". lỗi?

Thậm chí có thể đóng toàn bộ Ứng dụng trước khi được nạp đầy đủ không?

Để làm rõ, tôi muốn ngăn ứng dụng tải trong trường hợp xảy ra sự cố kết nối cơ sở dữ liệu.

+3

Có lẽ tốt hơn nên kiểm tra kết nối cơ sở dữ liệu trước khi gọi hàm tạo cho biểu mẫu chính? Chẳng hạn như có màn hình giật "tải" để kiểm tra tất cả điều kiện tiên quyết cho ứng dụng hoạt động. Nếu bất kỳ kiểm tra thất bại nó có thể hủy bỏ tại thời điểm đó. Nếu tất cả các chi phiếu vượt qua, biểu mẫu chính có thể tải. –

+0

Cảm ơn bạn đã chỉ ra điều này, trong khi tôi chưa xem xét điều này. Đó có lẽ là giải pháp tốt nhất cho vấn đề chung của tôi. – Marek

Trả lời

6

Hãy thử Environment.Exit như được mô tả here.

9

Như ho1 đã nói, Environment.Exit là câu trả lời. Ví dụ:

public MainForm() 
{ 
    if (true) 
    { 
     Environment.Exit(0); 
    } 
    InitializeComponent(); 
} 

Điều đó sẽ khiến ứng dụng đóng nếu điều kiện là true trong tuyên bố if.

0

Tôi nghĩ câu trả lời được đưa ra bởi rob_g là cách để thực hiện. Có cơ sở dữ liệu được khởi tạo và xác thực trước khi hiển thị biểu mẫu là giải pháp gọn gàng nhất theo ý kiến ​​của tôi! Bạn cũng loại bỏ logic không cần thiết khỏi hàm tạo biểu mẫu, vì biểu mẫu không thực sự quan tâm đến việc khởi tạo db.

+0

Như tôi đã nói bên dưới Câu hỏi, đó có lẽ là giải pháp tốt nhất cho vấn đề chung, mà tôi sẽ phát triển. – Marek

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