CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 602

602
Chương 15: Khả năng liên tác mã lệnh không-được-quản-lý

Console.ReadLine();

}

}

9.

9.

S d ng đi u ki m ActiveX trong .NET

ử ụ

S d ng đi u ki m ActiveX trong .NET

ử ụ

-

-

client

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ểm
ActiveX. Đ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ện

chuẩn như

Location

,

Size

,

Anchor

,.. Nếu RCW được sinh tự động, các lớp

AxHost

luôn bắt đầu

bằ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ần
COM 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 Visual
Studio .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ự án
củ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 .NET
tươ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êm
nó 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)

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.