• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Drap and Drop From DataGridView to DataGridView ,Textbox

Các mẹo vặt linh tinh không thuộc các nhóm trên

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: T.Tư 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 28 time

Drap and Drop From DataGridView to DataGridView ,Textbox

Gửi bàigửi bởi tungcan5diop » T.Sáu 12/06/2009 10:19 pm

Thủ thuật: Drap and Drop From DataGridView to DataGridView ,Textbox
Tác giả: Google+Me
Mô tả: Drap and Drop From DataGridView to DataGridView ,Textbox


đầu tiên tạo một cái Form gồm 2 cái DataGridview1,DataGridview2
chỉnh thuộc tính của 2 lưới SelectionMode=FulllRowSelect
lưới 2 chỉnh AllowDrop=True

Mã: Chọn hết

  Sub create_table()        table1 = New DataTable        '--tạo bảng đầu tiên gồm 4 cột        table1.Columns.Add("TENNV", Type.GetType("System.String"))        table1.Columns.Add("QUEQUAN", Type.GetType("System.String"))        table1.Columns.Add("NOISINH", Type.GetType("System.String"))        table1.Columns.Add("NAMSINH", Type.GetType("System.String"))         table2 = New DataTable        '--tạo bảng thứ 2 gồm 2 cột        table2.Columns.Add("TENNV", Type.GetType("System.String"))        table2.Columns.Add("QUEQUAN", Type.GetType("System.String"))         '--chú ý 2 bảng phải có cùng tên cột(dữ liệu cần kéo thả giữa 2 lưới)         '--add một số dữ liệu mẫu        Dim row As DataRow          row = table1.NewRow        row("TENNV") = "Nguyễn Văn A"        row("QUEQUAN") = "Không Biết"        row("NOISINH") = "Không Biết"        row("NAMSINH") = "Không Biết"        table1.Rows.Add(row)         row = table1.NewRow        row("TENNV") = "Nguyễn Văn B"        row("QUEQUAN") = "Quang Ninh"        row("NOISINH") = "Kinh Bắc"        row("NAMSINH") = "1990"        table1.Rows.Add(row)         row = table1.NewRow        row("TENNV") = "Nguyễn Văn C"        row("QUEQUAN") = "Quang Nam"        row("NOISINH") = "Kinh Nam"        row("NAMSINH") = "2000"        table1.Rows.Add(row)         row = table1.NewRow        row("TENNV") = "Nguyễn Văn D"        row("QUEQUAN") = "Quang Trung"        row("NOISINH") = "Kinh Trung"        row("NAMSINH") = "2004"        table1.Rows.Add(row)         Me.DataGridView1.DataSource = table1        Me.DataGridView2.DataSource = table2    End Sub 

Mã: Chọn hết

 Private Sub KeoTha_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        create_table()    End Sub

Mã: Chọn hết

  Private Sub DataGridView1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDown        If e.Button = Windows.Forms.MouseButtons.Left Then            Dim Index As Integer            Index = DataGridView1.HitTest(e.X, e.Y).RowIndex            If Index > -1 Then                DataGridView1.DoDragDrop(Index, DragDropEffects.Move)            End If        End If     End Sub 

Mã: Chọn hết

 Private Sub DataGridView2_DragOver(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragOver        e.Effect = DragDropEffects.Move    End Sub

Mã: Chọn hết

 Dim arr As New ArrayList

Mã: Chọn hết

 Private Sub DataGridView2_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles DataGridView2.DragDrop        Try            Dim index As Integer = Convert.ToInt32(e.Data.GetData(Type.GetType("System.Int32")))            If arr.IndexOf(index) <> -1 Then                MessageBox.Show("Dòng này đã có rồi")                Exit Sub            End If            If index = Me.DataGridView1.Rows.Count - 1 Then                MessageBox.Show("Dòng này ko có dữ liệu!!!")                Exit Sub            End If            Dim tennv As String = ""            Dim quequan As String = ""            tennv = DataGridView1.Rows(index).Cells("TENNV").Value.ToString            quequan = DataGridView1.Rows(index).Cells("QUEQUAN").Value.ToString            Dim Dr As DataRow            Dr = table2.NewRow            Dr("TENNV") = tennv            Dr("QUEQUAN") = quequan            table2.Rows.Add(Dr)            arr.Add(index)        Catch ex As Exception            MessageBox.Show(ex.Message)        End Try    End Sub

xong kéo dữ liệu từng lưới 1 sang lưới 2


Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!

Hình đại diện của người dùng
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: T.Tư 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 28 time

Re: Drap and Drop From DataGridView to DataGridView ,Textbox

Gửi bàigửi bởi tungcan5diop » T.Bảy 13/06/2009 8:00 am

Kéo thả từ lưới vào TextBox
tương tự như lưới,TextBox cũng phải được Set AllowDrop=True
thêm một số sự kiện của Textbox

Mã: Chọn hết

 Private Sub TextBox1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter        e.Effect = DragDropEffects.Move    End Sub

Mã: Chọn hết

 Private Sub TextBox1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop        If e.Data.GetDataPresent(Type.GetType("System.String")) Then            TextBox1.Text = CType(e.Data.GetData(Type.GetType("System.String")), String)        End If    End Sub

trong sự kiện MouseDown của DataGridView1 viết

Mã: Chọn hết

 If e.Button = Windows.Forms.MouseButtons.Left Then            Dim info As DataGridView.HitTestInfo            info = Me.DataGridView1.HitTest(e.X, e.Y)            If info.RowIndex >= 0 Then                If info.RowIndex >= 0 AndAlso info.ColumnIndex >= 0 Then                    Dim text As String = Me.DataGridView1.Rows(info.RowIndex).Cells(info.ColumnIndex).Value                    If text <> "" Then                        Me.DataGridView1.DoDragDrop(text, DragDropEffects.Move)                    End If                 End If            End If        End If

xong..bây giờ thực hành kéo thả thử xem :D
kéo thả từ lưới vào RichTextBox
bạn chỉ cần Set điều này là xong

Mã: Chọn hết

 Me.RichTextBox1.EnableAutoDragDrop = True
Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!


Quay về “[.NET] Mẹo vặt khác”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.2 khách