![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Các giải pháp lập trình CSharp- P72
Số trang: 10
Loại file: pdf
Dung lượng: 2.67 MB
Lượt xem: 5
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Các giải pháp lập trình CSharp- P72: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đềthường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu.
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P72 601 Chương 15: Khả năng liên tác mã lệnh không-được-quản-lýsố bằng tham chiếu, bạn chỉ cần khai báo một biến đối tượng, thiết lập nó là Type.Missing, vàsử dụng nó trong mọi trường hợp:private static object n = Type.Missing;Ví dụ dưới đây sử dụng đối tượng Word để tạo và hiển thị một tài liệu. Trong đó, có nhiềuphương thức yêu cầu các thông số tùy chọn (được truyền bằng tham chiếu). Việc sử dụngtrường Type.Missing đơn giản hóa mã lệnh rất nhiều.using System;public class OptionalParameters { private static object n = Type.Missing; private static void Main() { // Chạy Word phía nền. Word.ApplicationClass app = new Word.ApplicationClass(); app.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone; // Tạo một tài liệu mới (không khả kiến đối với người dùng). Word.Document doc = app.Documents.Add(ref n, ref n, ref n, ref n); Console.WriteLine(); Console.WriteLine(Creating new document.); Console.WriteLine(); // Thêm một tiêu đề và hai hàng text. Word.Range range = doc.Paragraphs.Add(ref n).Range; range.InsertBefore(Test Document); string style = Heading 1; object objStyle = style; range.set_Style(ref objStyle); range = doc.Paragraphs.Add(ref n).Range; range.InsertBefore(Line one.\nLine two.); range.Font.Bold = 1; // Hiển thị Print Preview, làm cho Word trở nên khả kiến. doc.PrintPreview(); app.Visible = true; 602 Chương 15: Khả năng liên tác mã lệnh không-được-quản-lý Console.ReadLine(); }}9. Sử dụng điều kiểm ActiveX trong .NET-client Bạn cần đặt một điều kiểm ActiveX trên một cửa sổ ứng dụng .NET Framework. Sử dụng một RCW (cũng giống như với một thành phần COM bình thường). Để làm việc với điều kiểm ActiveX khi thiết kế, thêm nó vào hộp công cụ của Visual Studio .NET..NET Framework hỗ trợ như nhau đối với tất cả các thành phần COM, bao gồm điều kiểmActiveX. Điều khác nhau cơ bản là lớp RCW (cho điều kiểm ActiveX) dẫn xuất từ kiểu .NETđặc biệt System.Windows.Forms.AxHost. Về mặt kỹ thuật, bạn thêm AxHost vào form, và nó sẽgiao tiếp với điều kiểm ActiveX phía hậu trường. Vì dẫn xuất từSystem.Windows.Forms.Control, nên AxHost cũng có các thuộc tính, phương thức, và sự kiệnchuẩn như Location, Size, Anchor,.. Nếu RCW được sinh tự động, các lớp AxHost luôn bắt đầubằng Ax.Bạn có thể tạo một RCW cho một điều kiểm ActiveX cũng giống như cho bất cứ thành phầnCOM nào khác bằng công cụ Tlbimp.exe hoặc tính năng Add Reference trong Visual Studio.NET, sau đó lập trình để tạo điều kiểm. Tuy nhiên, một cách tiếp cận dễ hơn trong VisualStudio .NET là thêm điều kiểm ActiveX vào hộp công cụ (xem mục 11.4 để biết thêm chi tiết).Chẳng có gì xảy ra khi bạn thêm một điều kiểm ActiveX vào hộp công cụ. Tuy nhiên, bạn cóthể sử dụng biểu tượng trong hộp công cụ để thêm một thể hiện của điều kiểm vào form. Lầnđầu bạn làm việc này, Visual Studio .NET sẽ tạo một Interop Assembly và thêm nó vào dự áncủa bạn. Ví dụ, nếu bạn thêm điều kiểm Microsoft Masked Edit (không có điều kiểm .NETtương đương), Visual Studio .NET sẽ tạo một RCW Assembly có tên là AxInterop.MSMask.dll.Dưới đây là đoạn mã trong vùng designer dùng để tạo một thể hiện của điều kiểm này và thêmnó vào form:this.axMaskEdBox1 = new AxMSMask.AxMaskEdBox();((System.ComponentModel.ISupportInitialize)(this.axMaskEdBox1)). BeginInit();//// axMaskEdBox1//this.axMaskEdBox1.Location = new System.Drawing.Point(16, 12);this.axMaskEdBox1.Name = axMaskEdBox1;this.axMaskEdBox1.OcxState = ((System.Windows.Forms.AxHost.State) 603 Chương 15: Khả năng liên tác mã lệnh không-được-quản-lý (resources.GetObject(axMaskEdBox1.OcxState)));this.axMaskEdBox1.Size = new System.Drawing.Size(112, 20);this.axMaskEdBox1.TabIndex = 0;this.Controls.Add(this.axMaskEdBox1);Chú ý rằng, các thuộc tính tùy biến của điều kiểm ActiveX không được áp dụng trực tiếp thôngqua các lệnh thiết lập thuộc tính. Thay vào đó, chúng sẽ được thiết lập theo nhóm khi thuộctính OcxState đã được thiết lập. Tuy nhiên, mã lệnh của bạn có thể sử dụng các thuộc tính nàymột cách trực tiếp.10. Tạo thành phần .NET dùng cho COM-client Bạn cần tạo một thành phần .NET sao cho một COM-client có thể gọi nó. Tạo một assembly theo các chỉ dẫn trong mục này. Tạo một thư viện kiểu cho assembly này bằng tiện ích dòng lệnh Type Library Exporter (Tlbexp.exe)..NET Framework hỗ trợ việc COM-client sử dụng thành phần .NET. Khi COM-client tạo mộtđối tượng .NET, CLR sẽ tạo một đối tượng được-quản-lý và một COM Callable Wrapper(CCW) bọc lấy đối tượng này. COM-client sẽ tương tác với đối tượng thông qua CCW. CLRchỉ tạo một CCW cho một đối tượng được-quản-lý, bất chấp có bao nhiêu COM-client đang sửdụng nó.Các kiểu cần được truy xuất bởi COM-client phải thỏa mãn các yêu cầu sau: • Các kiểu được-quản-lý (lớp, giao diện, cấu trúc, hoặc kiểu liệt kê) phải được khai báo là public. • Nếu COM-client cần tạo đối tượng, nó phải có một phương thức khởi dựng mặc định public. COM không hỗ trợ các phương thức khởi dựng có chứa thông số. • Các thành viên của kiểu cần được truy xuất phải là các thành viên public. COM-client không truy xuất được các thành viên private, protected, internal, và static.Ngoài ra, bạn nên tuân theo các kinh nghiệm sau: • Không nên tạo các quan hệ thừa kế giữa các lớp, vì các quan hệ này sẽ không khả kiến đối với COM-client (mặc dù .NET giả lập quan hệ ...
Nội dung trích xuất từ tài liệu:
Các giải pháp lập trình CSharp- P72 601 Chương 15: Khả năng liên tác mã lệnh không-được-quản-lýsố bằng tham chiếu, bạn chỉ cần khai báo một biến đối tượng, thiết lập nó là Type.Missing, vàsử dụng nó trong mọi trường hợp:private static object n = Type.Missing;Ví dụ dưới đây sử dụng đối tượng Word để tạo và hiển thị một tài liệu. Trong đó, có nhiềuphương thức yêu cầu các thông số tùy chọn (được truyền bằng tham chiếu). Việc sử dụngtrường Type.Missing đơn giản hóa mã lệnh rất nhiều.using System;public class OptionalParameters { private static object n = Type.Missing; private static void Main() { // Chạy Word phía nền. Word.ApplicationClass app = new Word.ApplicationClass(); app.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone; // Tạo một tài liệu mới (không khả kiến đối với người dùng). Word.Document doc = app.Documents.Add(ref n, ref n, ref n, ref n); Console.WriteLine(); Console.WriteLine(Creating new document.); Console.WriteLine(); // Thêm một tiêu đề và hai hàng text. Word.Range range = doc.Paragraphs.Add(ref n).Range; range.InsertBefore(Test Document); string style = Heading 1; object objStyle = style; range.set_Style(ref objStyle); range = doc.Paragraphs.Add(ref n).Range; range.InsertBefore(Line one.\nLine two.); range.Font.Bold = 1; // Hiển thị Print Preview, làm cho Word trở nên khả kiến. doc.PrintPreview(); app.Visible = true; 602 Chương 15: Khả năng liên tác mã lệnh không-được-quản-lý Console.ReadLine(); }}9. Sử dụng điều kiểm ActiveX trong .NET-client Bạn cần đặt một điều kiểm ActiveX trên một cửa sổ ứng dụng .NET Framework. Sử dụng một RCW (cũng giống như với một thành phần COM bình thường). Để làm việc với điều kiểm ActiveX khi thiết kế, thêm nó vào hộp công cụ của Visual Studio .NET..NET Framework hỗ trợ như nhau đối với tất cả các thành phần COM, bao gồm điều kiểmActiveX. Điều khác nhau cơ bản là lớp RCW (cho điều kiểm ActiveX) dẫn xuất từ kiểu .NETđặc biệt System.Windows.Forms.AxHost. Về mặt kỹ thuật, bạn thêm AxHost vào form, và nó sẽgiao tiếp với điều kiểm ActiveX phía hậu trường. Vì dẫn xuất từSystem.Windows.Forms.Control, nên AxHost cũng có các thuộc tính, phương thức, và sự kiệnchuẩn như Location, Size, Anchor,.. Nếu RCW được sinh tự động, các lớp AxHost luôn bắt đầubằng Ax.Bạn có thể tạo một RCW cho một điều kiểm ActiveX cũng giống như cho bất cứ thành phầnCOM nào khác bằng công cụ Tlbimp.exe hoặc tính năng Add Reference trong Visual Studio.NET, sau đó lập trình để tạo điều kiểm. Tuy nhiên, một cách tiếp cận dễ hơn trong VisualStudio .NET là thêm điều kiểm ActiveX vào hộp công cụ (xem mục 11.4 để biết thêm chi tiết).Chẳng có gì xảy ra khi bạn thêm một điều kiểm ActiveX vào hộp công cụ. Tuy nhiên, bạn cóthể sử dụng biểu tượng trong hộp công cụ để thêm một thể hiện của điều kiểm vào form. Lầnđầu bạn làm việc này, Visual Studio .NET sẽ tạo một Interop Assembly và thêm nó vào dự áncủa bạn. Ví dụ, nếu bạn thêm điều kiểm Microsoft Masked Edit (không có điều kiểm .NETtương đương), Visual Studio .NET sẽ tạo một RCW Assembly có tên là AxInterop.MSMask.dll.Dưới đây là đoạn mã trong vùng designer dùng để tạo một thể hiện của điều kiểm này và thêmnó vào form:this.axMaskEdBox1 = new AxMSMask.AxMaskEdBox();((System.ComponentModel.ISupportInitialize)(this.axMaskEdBox1)). BeginInit();//// axMaskEdBox1//this.axMaskEdBox1.Location = new System.Drawing.Point(16, 12);this.axMaskEdBox1.Name = axMaskEdBox1;this.axMaskEdBox1.OcxState = ((System.Windows.Forms.AxHost.State) 603 Chương 15: Khả năng liên tác mã lệnh không-được-quản-lý (resources.GetObject(axMaskEdBox1.OcxState)));this.axMaskEdBox1.Size = new System.Drawing.Size(112, 20);this.axMaskEdBox1.TabIndex = 0;this.Controls.Add(this.axMaskEdBox1);Chú ý rằng, các thuộc tính tùy biến của điều kiểm ActiveX không được áp dụng trực tiếp thôngqua các lệnh thiết lập thuộc tính. Thay vào đó, chúng sẽ được thiết lập theo nhóm khi thuộctính OcxState đã được thiết lập. Tuy nhiên, mã lệnh của bạn có thể sử dụng các thuộc tính nàymột cách trực tiếp.10. Tạo thành phần .NET dùng cho COM-client Bạn cần tạo một thành phần .NET sao cho một COM-client có thể gọi nó. Tạo một assembly theo các chỉ dẫn trong mục này. Tạo một thư viện kiểu cho assembly này bằng tiện ích dòng lệnh Type Library Exporter (Tlbexp.exe)..NET Framework hỗ trợ việc COM-client sử dụng thành phần .NET. Khi COM-client tạo mộtđối tượng .NET, CLR sẽ tạo một đối tượng được-quản-lý và một COM Callable Wrapper(CCW) bọc lấy đối tượng này. COM-client sẽ tương tác với đối tượng thông qua CCW. CLRchỉ tạo một CCW cho một đối tượng được-quản-lý, bất chấp có bao nhiêu COM-client đang sửdụng nó.Các kiểu cần được truy xuất bởi COM-client phải thỏa mãn các yêu cầu sau: • Các kiểu được-quản-lý (lớp, giao diện, cấu trúc, hoặc kiểu liệt kê) phải được khai báo là public. • Nếu COM-client cần tạo đối tượng, nó phải có một phương thức khởi dựng mặc định public. COM không hỗ trợ các phương thức khởi dựng có chứa thông số. • Các thành viên của kiểu cần được truy xuất phải là các thành viên public. COM-client không truy xuất được các thành viên private, protected, internal, và static.Ngoài ra, bạn nên tuân theo các kinh nghiệm sau: • Không nên tạo các quan hệ thừa kế giữa các lớp, vì các quan hệ này sẽ không khả kiến đối với COM-client (mặc dù .NET giả lập quan hệ ...
Tìm kiếm theo từ khóa liên quan:
kinh nghiệm lập trình CSharp mẹo lập trình ngôn ngữ lập trình C giáo trình lập trình CSharp lập trình java lập trình căn bản CSharpTài liệu liên quan:
-
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 217 0 0 -
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 217 0 0 -
101 trang 205 1 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 151 0 0 -
161 trang 134 1 0
-
142 trang 130 0 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 125 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 115 0 0 -
Excel add in development in c and c phần 9
0 trang 112 0 0 -
78 trang 103 0 0