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

226
Chương 6: Windows Form

}

}

18.

18.

Th c hi n thao tác kéo-và-th

ự ệ

Th c hi n thao tác kéo-và-th

ự ệ

Bạn cần sử dụng tính năng kéo-và-thả để trao đổi thông tin giữa hai điều kiểm
(cũng có thể trong các cửa sổ hoặc các ứng dụng khác nhau)

Khởi động thao tác kéo-và-thả bằng phương thức

DoDragDrop

của lớp

Control

, và

đáp ứng cho sự kiện

DragEnter

DragDrop

.

Thao tác kéo-và-thả cho phép người dùng chuyển thông tin từ nơi này đến nơi khác bằng cách
nhắp vào một item và rê nó đến một vị trí khác. Thao tác kéo-và-thả gồm ba bước cơ bản sau
đây:

1. Người dùng nhắp vào điều kiểm, giữ chuột, và bắt đầu rê. Nếu điều kiểm hỗ trợ tính

năng kéo-và-thả, nó sẽ thiết lập riêng một vài thông tin.

2. Người dùng rê chuột lên một điều kiểm khác. Nếu điều kiểm này chấp nhận kiểu nội

dung được rê đến, con trỏ chuột sẽ đổi thành hình mũi tên với trang giấy

. Nếu

không, con trỏ chuột sẽ đổi thành hình tròn với một vạch thẳng bên trong

.

3. Khi người dùng thả chuột, dữ liệu được gửi đến điều kiểm, và điều kiểm này có thể xử

lý nó một cách thích hợp.

Để hỗ trợ tính năng kéo-và-thả, bạn phải thụ lý các sự kiện

DragEnter

,

DragDrop

, và

MouseDown

. Ví dụ này sử dụng hai

TextBox

, đây là đoạn mã gắn các phương thức thụ lý sự kiện

mà chúng ta sẽ sử dụng:

this.TextBox2.MouseDown += new MouseEventHandler(this.TextBox_MouseDown);

this.TextBox2.DragDrop += new DragEventHandler(this.TextBox_DragDrop);

this.TextBox2.DragEnter += new DragEventHandler(this.TextBox_DragEnter);

this.TextBox1.MouseDown += new MouseEventHandler(this.TextBox_MouseDown);

this.TextBox1.DragDrop += new DragEventHandler(this.TextBox_DragDrop);

this.TextBox1.DragEnter += new DragEventHandler(this.TextBox_DragEnter);

Để bắt đầu một thao tác kéo-và-thả, bạn hãy gọi phương thức

DoDragDrop

của điều kiểm

nguồn. Lúc này, bạn cần cung cấp dữ liệu và chỉ định kiểu hoạt động sẽ được hỗ trợ (chép, di
chuyển…). Ví dụ dưới đây sẽ khởi tạo một thao tác kéo-và-thả khi người dùng nhắp vào một

TextBox

:

private void TextBox_MouseDown(object sender,

System.Windows.Forms.MouseEventArgs e) {

TextBox txt = (TextBox)sender;

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.