Phải, tôi sẽ bắt đầu lại. Để hiểu được những gì đang xảy ra, bạn cần phải hiểu như thế nào .NET và Windows liên quan đến nhau. NET chạy trên Windows và kết thúc tốt đẹp nhiều, khái niệm Win32 bản địa như một cửa sổ, một listview, một editbox (tên Win32 cho một hộp văn bản tiêu chuẩn). Điều này có nghĩa rằng bạn có thể có một trường .NET hợp lệ của một TextBox hay một Form, nhưng không có các phiên bản Windows cơ bản của mục đó (EditBox, hoặc cửa sổ) được nêu ra. Khi HandleCreated là đúng, phiên bản Windows của mặt hàng đó được tạo ra. Vấn đề của bạn đang diễn ra vì một cái gì đó đang dẫn đầu với phương pháp logAdd được gọi là trước khi cửa sổ của mẫu đã được tạo ra. Điều này có nghĩa là một nơi nào đó trong quá trình khởi động của bạn sau khi dụ mẫu đã được khởi tạo nhưng trước khi xử lý cửa sổ đã được tạo ra, một cái gì đó đang cố gắng gọi logAdd. Nếu bạn thêm một breakpoint để logAdd, bạn sẽ có thể nhìn thấy những gì đang làm cuộc gọi đó. Những gì bạn sẽ tìm thấy được rằng cuộc gọi đang được thực hiện trên dụ chính bạn tạo ra trong lớp logger của bạn và không thể hiện chính mà thực sự là chạy. Khi dụ logger không bao giờ được hiển thị, các cửa sổ xử lý không được tạo ra, và do đó, bạn nhận được lỗi của bạn. Cách chung một ứng dụng chạy là để gọi Application.Run (mới Main ()) trong phương pháp khởi động của bạn, thường là trong lớp học của chương trình và được gọi là Main. Bạn cần logger của bạn để trỏ đến trường hợp này của chính. Có một số cách để có được sự thể hiện của các hình thức, mỗi hãy cẩn thận của riêng mình, nhưng vì đơn giản bạn có thể phơi bày các ví dụ ra khỏi lớp học chính bản thân. Ví dụ:
đang được dịch, vui lòng đợi..