2012-04-03 17 views
6

पर डेटाग्रिडव्यू में चयनित पंक्ति के बैककलर को बदलें, मैं एक फॉर्म पर डेटाग्रिड व्यू सेट अप करने का प्रयास कर रहा हूं ताकि माउस के नीचे की पंक्ति को हाइलाइट किया जा सके। मुझे यह मिल गया है कि निम्न के साथ काम कर रहा है, सिवाय वर्तमान में चयनित पंक्ति MouseEnter पर हाइलाइट नहीं होगी।माउसओवर

रूपों में 4 अलग डेटाग्रिड व्यू शामिल हैं और हाइलाइट की गई एकमात्र पंक्ति माउस कर्सर के नीचे एक होना चाहिए।

Private Sub dgvPrjDwgs_CellMouseEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseEnter 
     If e.RowIndex > -1 Then 
      dgvPrjDwgs.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.BlanchedAlmond 
     End If 
End Sub 

Private Sub dgvPrjDwgs_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseLeave 
     If e.RowIndex > -1 Then 
      dgvPrjDwgs.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.DimGray 
     End If 
End Sub 

निम्न तस्वीर एक यादृच्छिक गैर-चयनित पंक्ति पर माउस के साथ है। बेज हाइलाइट रंग है जिसे मैं दिखाना चाहता हूं।

Highlight, highlight, you so fine, you so fine you blow my mind!

यह तस्वीर वर्तमान में चयनित पंक्ति पर माउस के साथ है। जब मैं माउस खत्म हो जाता हूं तो मैं बैककलर को ब्लैंचहेडलैम में बदलना चाहता हूं।

Why you no highlight when I want.

तो, मैं सोच बदल गया है और उस पंक्ति का चयन किया एक बनाने के लिए mouseenter उपयोग करने की कोशिश। यह बहुत अच्छा काम करता है। लेकिन जब यह डेटा डाटाग्रिड छोड़ देता है और एक अलग (खराब) पर जाता है तो यह पंक्ति को छोड़ देता है। मैंने गैर-चयनित बैककोलर से मेल खाने के लिए चयनित बैककोलर सेट करने का प्रयास किया और अब यह बिल्कुल हाइलाइट नहीं करता है।

Private Sub dgvPrjDwgs_CellMouseEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseEnter 
    dgvPrjDwgs.DefaultCellStyle.SelectionBackColor = Color.BlanchedAlmond 
    If e.RowIndex > -1 Then 
     dgvPrjDwgs.Rows(e.RowIndex).Selected = True 
    End If 
End Sub 
Private Sub dgvPrjDwgs_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseLeave 
    dgvPrjDwgs.DefaultCellStyle.SelectionBackColor = Color.DimGray 
End Sub 

मदद कृपया :)

उत्तर

5

यह काम करने के लिए मिला है।

मैं RowsDefaultCellStyle के बजाय DefaultCellStyle का उपयोग कर रहा था। अंतिम कोड यहाँ है।

Private Sub dgvPrjDwgs_CellMouseEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseEnter 
     dgvPrjDwgs.RowsDefaultCellStyle.SelectionBackColor = Color.BlanchedAlmond 
     If e.RowIndex > -1 Then 
      dgvPrjDwgs.Rows(e.RowIndex).Selected = True 
     End If 
    End Sub 
    Private Sub dgvPrjDwgs_CellMouseLeave(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPrjDwgs.CellMouseLeave 
     dgvPrjDwgs.RowsDefaultCellStyle.SelectionBackColor = Color.DimGray 
    End Sub 
संबंधित मुद्दे