السلام عليكم
عند الضغط علي راس اي عمود لاول مرة تفتح الواجهة يقوم باختيار وتحديد اول صف من صفوف الداتا جريد اجبارا
وانا لا اريد فعل اي شيء عند الضغط علي اي عمود ولكن العملية تتم كيفية الغاء هذا الحدث
حاولت بالكود
يعمل ولكن بعد ماتتم أول ضغطة علي العمود لاول خلية واختيار كامل الصف
كود :
Private Sub dataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dataGridView1.CellContentClick
Dim dgv As DataGridView = CType(sender, DataGridView)
If e.ColumnIndex < 0 Or e.RowIndex < 0 Then
Exit Sub
End If
End Sub
إقتباس :الغاء حدث الضغط علي راس الاعمدة
اذهب الى خصائص العمود وغير الخاصيه sortmaode واختار لها notsortable
واذا بالكود
DataGridview1.columns(1).sortMode=dataGridViewColumnSortMode.notSortable
إقتباس :عند الضغط علي راس اي عمود لاول مرة تفتح الواجهة يقوم باختيار وتحديد اول صف من صفوف الداتا جريد اجبارا
اذا تقصد الغاء الاختيارات فهذا هو كود الغاء الاختيارات
DatagridView1.clearSelection
(17-05-19, 11:50 PM)sami4 كتب : [ -> ]إقتباس :الغاء حدث الضغط علي راس الاعمدة
اذهب الى خصائص العمود وغير الخاصيه sortmaode واختار لها notsortable
واذا بالكود
DataGridview1.columns(1).sortMode=dataGridViewColumnSortMode.notSortable
إقتباس :عند الضغط علي راس اي عمود لاول مرة تفتح الواجهة يقوم باختيار وتحديد اول صف من صفوف الداتا جريد اجبارا
اذا تقصد الغاء الاختيارات فهذا هو كود الغاء الاختيارات
DatagridView1.clearSelection
الكود الي وضعتة خاص بترتيب بيانات الاعمدة تصاعديا او تنازليا
اما كود الاختيار لا يعمل ايضا يبقي السهم براس اول صف
(18-05-19, 12:10 AM)محمد اسماعيل كتب : [ -> ] (17-05-19, 11:50 PM)sami4 كتب : [ -> ]إقتباس :الغاء حدث الضغط علي راس الاعمدة
اذهب الى خصائص العمود وغير الخاصيه sortmaode واختار لها notsortable
واذا بالكود
DataGridview1.columns(1).sortMode=dataGridViewColumnSortMode.notSortable
إقتباس :عند الضغط علي راس اي عمود لاول مرة تفتح الواجهة يقوم باختيار وتحديد اول صف من صفوف الداتا جريد اجبارا
اذا تقصد الغاء الاختيارات فهذا هو كود الغاء الاختيارات
DatagridView1.clearSelection
الكود الي وضعتة خاص بترتيب بيانات الاعمدة تصاعديا او تنازليا
اما كود الاختيار لا يعمل ايضا يبقي السهم براس اول صف
انت تقصد السهم لا تريد ان يظهر
هذا الكود فيه جزء لاعادت رسم خلفيه راس السطر بدو السهم
لاحظ في الكود تم استخدام الحدث prepaint وليس postpaint الذ في السابق
فنقت الكود من الحدث السابق postpain الى داخل هذا الحدث prepaint ولا ادري ما الفرق بينهم
Private Sub DataGridView1_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint
e.Handled = True
e.PaintCells(e.ClipBounds, DataGridViewPaintParts.All)
e.PaintHeader(DataGridViewPaintParts.Background Or _
DataGridViewPaintParts.Border Or _
DataGridViewPaintParts.Focus Or _
DataGridViewPaintParts.SelectionBackground Or _
DataGridViewPaintParts.ContentForeground)
Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
If sender.RightToLeft = RightToLeft.Yes Then r.X = sender.Width - sender.RowHeadersWidth + 3
If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
e.Graphics.DrawImage(Me.ImageList1.Images("img1"), r)
End If
End Sub
استخدام الحدث prepaint وجدتها بعد البحث في اغلب المواقع لاخفاء السهم
(18-05-19, 12:31 AM)sami4 كتب : [ -> ] (18-05-19, 12:10 AM)محمد اسماعيل كتب : [ -> ] (17-05-19, 11:50 PM)sami4 كتب : [ -> ]إقتباس :الغاء حدث الضغط علي راس الاعمدة
اذهب الى خصائص العمود وغير الخاصيه sortmaode واختار لها notsortable
واذا بالكود
DataGridview1.columns(1).sortMode=dataGridViewColumnSortMode.notSortable
إقتباس :عند الضغط علي راس اي عمود لاول مرة تفتح الواجهة يقوم باختيار وتحديد اول صف من صفوف الداتا جريد اجبارا
اذا تقصد الغاء الاختيارات فهذا هو كود الغاء الاختيارات
DatagridView1.clearSelection
الكود الي وضعتة خاص بترتيب بيانات الاعمدة تصاعديا او تنازليا
اما كود الاختيار لا يعمل ايضا يبقي السهم براس اول صف
انت تقصد السهم لا تريد ان يظهر
هذا الكود فيه جزء لاعادت رسم خلفيه راس السطر بدو السهم
لاحظ في الكود تم استخدام الحدث prepaint وليس postpaint الذ في السابق
فنقت الكود من الحدث السابق postpain الى داخل هذا الحدث prepaint ولا ادري ما الفرق بينهم
Private Sub DataGridView1_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint
e.Handled = True
e.PaintCells(e.ClipBounds, DataGridViewPaintParts.All)
e.PaintHeader(DataGridViewPaintParts.Background Or _
DataGridViewPaintParts.Border Or _
DataGridViewPaintParts.Focus Or _
DataGridViewPaintParts.SelectionBackground Or _
DataGridViewPaintParts.ContentForeground)
Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
If sender.RightToLeft = RightToLeft.Yes Then r.X = sender.Width - sender.RowHeadersWidth + 3
If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
e.Graphics.DrawImage(Me.ImageList1.Images("img1"), r)
End If
End Sub
استخدام الحدث prepaint وجدتها بعد البحث في اغلب المواقع لاخفاء السهم
فعلا اخي سامي تم حل المشكلة جزاك اللَّة كل الخير عن الجميع