227
Chương 6: Windows Form
txt.SelectAll();
txt.DoDragDrop(txt.Text, DragDropEffects.Copy);
}
Để 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:
private void TextBox_DragEnter(object sender,
System.Windows.Forms.DragEventArgs e) {
if (e.Data.GetDataPresent(DataFormats.Text)) {
e.Effect = DragDropEffects.Copy;
}
else {
e.Effect = DragDropEffects.None;
}
}
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:
private void TextBox_DragDrop(object sender,
System.Windows.Forms.DragEventArgs e) {
TextBox txt = (TextBox)sender;
txt.Text = (string)e.Data.GetData(DataFormats.Text);
}
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 (xem hình 6.12), 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.
Hình 6.12 Một ứng dụng thử nghiệm tính năng kéo-và-thả