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 và 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:
Visual C# Code:
Để 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:
Visual C# Code:
Để có thể nhận dữ liệu được rê đến, điều kiểm phải có thuộc tính AllowDrop là true. Điều kiểm này sẽ nhận sự kiện DragEnter khi chuột rê dữ liệu lên nó. Lúc này, bạn có thể kiểm tra dữ liệu đang được rê đến, quyết định xem điều kiểm có thể chấp nhận việc thả hay không, và thiết lập thuộc tính DragEventArgs.Effect tương ứng, như được trình bày trong đoạn mã dưới đây:
Visual C# Code:
Bước cuối cùng là đáp ứng cho sự kiện DragDrop, sự kiện này xảy ra khi người dùng thả chuột:
Visual C# Code:
Sử dụng các đoạn mã trên, bạn có thể tạo một ứng dụng thử nghiệm tính năng kéo-và-thả đơn giản, cho phép text được rê từ TextBox này đến TextBox khác. Bạn cũng có thể rê text từ một ứng dụng khác và thả nó vào một trong hai TextBox này @
Đã được chỉnh sửa lần cuối bởi ZCoder87 : 04-11-2008 lúc 11:39 AM. Lý do: Đặt tag code=C#