22-04-16, 03:45 PM
(آخر تعديل لهذه المشاركة : 22-04-16, 03:48 PM {2} بواسطة mazen.excel.)
اليكم اخواني الاعزاء بهذا المنتدى طريقة عمل قائمة لاظهار او اخفاء الاعمدة في الداتاجريد عند الضغط بيمين الماوس على العمود
يجب مراعاة اضافة ContextMenu تسميتها MnuColumn
أولا: كود انشاء القائمة
ويمكن اضافة الحدث في Form_Load
ثانيا: تعريف حدث الاخفاء او الاظهار في ContextMenu
ثالثا: اظهار القائمة عند الضغط بيمين الماوس على عمود الداتاجريد
اخيرا تكون النتيجة هكذا
يجب مراعاة اضافة ContextMenu تسميتها MnuColumn
أولا: كود انشاء القائمة
PHP كود :
Private Sub CreatMenue()
Me.mnuColumn.ShowCheckMargin = True
Dim ii As Integer
For ii = 1 To Me.DataGridView1.ColumnCount - 1
Dim noCheckNoImage As New ToolStripMenuItem(Me.DataGridView1.Columns(ii).HeaderText())
Me.mnuColumn.Items.Add(noCheckNoImage)
noCheckNoImage.Checked = True
Next
End Sub
ويمكن اضافة الحدث في Form_Load
ثانيا: تعريف حدث الاخفاء او الاظهار في ContextMenu
PHP كود :
Private Sub mnuColumn_ItemClicked(sender As Object, e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles mnuColumn.ItemClicked
Dim noCheckNoImage As ToolStripMenuItem
noCheckNoImage = e.ClickedItem
For i As Integer = 0 To DataGridView1.Columns.Count - 1
If e.ClickedItem.ToString = DataGridView1.Columns(i).HeaderText And noCheckNoImage.CheckState = CheckState.Checked Then
DataGridView1.Columns(i).Visible = False
noCheckNoImage.CheckState = CheckState.Unchecked
ElseIf e.ClickedItem.ToString = DataGridView1.Columns(i).HeaderText And noCheckNoImage.CheckState = CheckState.Unchecked Then
DataGridView1.Columns(i).Visible = True
noCheckNoImage.CheckState = CheckState.Checked
End If
Next
End Sub
ثالثا: اظهار القائمة عند الضغط بيمين الماوس على عمود الداتاجريد
PHP كود :
Private Sub DataGridView1_MouseDown1(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim ht As DataGridView.HitTestInfo
ht = Me.DataGridView1.HitTest(e.X, e.Y)
If ht.Type = DataGridViewHitTestType.ColumnHeader Then
DataGridView1.ContextMenuStrip = mnuColumn
End If
End If
End Sub
اخيرا تكون النتيجة هكذا