2014-05-05 16 views
6

Tôi đang phát triển một ứng dụng dành cho Windows Phone 8 với C#MessageBox.Show không làm việc ở tất cả các

Và tôi đã làm việc rất nhiều với MessageBox.Show(), và Tất cả thời gian nó được sử dụng để hiển thị một thông điệp PopUp như tôi muốn, nhưng sau đó đột nhiên, nó sẽ không hiển thị bất cứ điều gì, tôi gỡ lỗi các ứng dụng, mã chạy bình thường và biên dịch các dòng MessageBox.Show("Something"); nhưng nó không bật lên!

Tôi cũng đã cố gắng đưa nó vào một trang khác, cũng không hoạt động! Tất cả tôi nhớ rằng hôm qua tôi đã sai lầm với Tài liệu tham khảo của dự án Nhưng đó có phải là vấn đề không?

Anyways, đây là một bức ảnh của các tài liệu tham khảo của dự án của tôi

References

+0

bạn cần 'System.Windows Namespace' – meda

+1

Thông thường, nếu bạn thiếu tham chiếu, nó sẽ không biên dịch chút nào. Kể từ khi nó biên dịch, 'MessageBox' có thể đã vô tình được trỏ đến cái gì khác. Hãy thử nhấp chuột phải vào 'MessageBox' và nhấp vào * Đi đến Định nghĩa * và xem liệu nó có đưa bạn đến lớp' System.Windows.MessageBox' hay một nơi nào khác không. –

+0

@SFLee nó đưa tôi đến lớp 'MessageBox' – GabourX

Trả lời

4

Khi bạn xây dựng một Windows Phone Dự án nó tự động tạo ra tất cả các phụ thuộc cần thiết cho bạn. Bạn sẽ có thể để trong của bạn tập tin lớp và thêm using tuyên bố sau:

using System.Windows 

Một khi bạn đã làm điều đó bạn sẽ có thể để thực hiện các lớp MessageBox. Nếu không, sau đó bạn sẽ cần phải làm như sau:

  1. mở Solution Explorer
  2. Right Click tham khảo thư mục
  3. Thêm Reference
  4. Đến Assemblies
  5. Đi tới Duyệt
  6. Navigate to: C:\Windows\Microsoft.Net\Assembly\GAC_MSIL\PresentationFramework
  7. Reference PresentationFramework.dll

Khi bạn đã tham khảo thư viện đó, bạn sẽ có thể gọi: MessageBox.Show(@"Something"); mà không có một nấc cục duy nhất.

+0

Tôi có thể thêm các bộ phận ở đâu? – GabourX

+0

Theo dõi đến bước 4, và không có gì để chọn ở đó Chỉ một thông điệp được hiển thị: Tất cả các khung công tác khuôn khổ đã được tham chiếu. Vui lòng sử dụng trình duyệt đối tượng để khám phá các tham chiếu trong khung – GabourX

+0

đi tới trình duyệt Objcet, tìm thấy 'System.Windows' và cũng tìm thấy 'MessageBox' lớp – GabourX

1

Giải quyết!

1.) Khởi động lại máy tính của tôi

2.) Deleted ứng dụng từ điện thoại

3.) gỡ lỗi

+1

Cùng với những dòng này, tôi đã kết thúc việc khởi động lại điện thoại và nó bắt đầu hoạt động trở lại. Rõ ràng, đây là một lỗi Windows Phone 8.1 và không thực sự là một vấn đề với các ứng dụng chạy vào điều này. – GusP

0

Tôi đã có một vấn đề với MessageBox.Show() không làm việc.

Điều đó xảy ra trên hai phần khác nhau của phần mềm: Kaxaml và một ví dụ từ cuốn sách Troelsen C#.

Tôi khắc phục sự cố bằng cách chỉ sử dụng một chuỗi đơn giản bên trong Show() thay vì ủy quyền "Ngoại lệ" ở các vị trí khác nhau trong mã và điều đó đã giúp tôi biết rằng tôi có tham chiếu chính xác.Rõ ràng, nếu MessageBox hoạt động ở bất kỳ nơi nào trong mã, điều đó đã cho tôi biết rằng tôi đã có các tham chiếu chính xác.

Về cơ bản, những gì đã xảy ra là trình gỡ lỗi Visual Studio sẽ kích hoạt trước khối catch-try, ngăn chặn MessageBox xuất hiện. Khi tôi sử dụng phiên bản Release, mặc dù sẽ không có MessageBox.

Điều gì đã giải quyết được đó là chỉ cần tắt một hộp nhấp chuột nhỏ cho biết trên Visual Studio, giống như "Không hiển thị ngoại lệ này". Loại lẻ mà Visual Studio vẫn bắn ra một lỗi ngoại lệ, mặc dù nó đã được trong một khối catch-try, nhưng bất cứ điều gì, điều này làm việc cho tôi.

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