منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الغاء حدث الضغط علي راس الاعمدة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

عند الضغط علي راس اي عمود لاول مرة تفتح الواجهة يقوم باختيار وتحديد اول صف من صفوف الداتا جريد اجبارا

وانا لا اريد فعل اي شيء  عند الضغط علي اي عمود ولكن العملية تتم كيفية الغاء هذا الحدث

حاولت بالكود

يعمل ولكن بعد ماتتم أول ضغطة علي العمود لاول خلية واختيار كامل الصف

كود :
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  وجدتها بعد البحث في اغلب المواقع لاخفاء السهم

فعلا اخي سامي تم حل المشكلة جزاك اللَّة كل الخير عن الجميع