2013-03-13 4 views
0

мне нужно сделать что-то в MyFlexGrid_DblClick(), но только если задняя цвет НЕ установлен на vbInactiveBorder, я попытался ниже код, но была не СукчесПроверка цвет фона выбранной ячейки в FlexGrid

Private Sub MyFlexGrid_DblClick() 

    If Not MyFlexGrid.BackColor = vbInactiveBorder Then 
     _what I need to do_ 
    End If 

End Sub 

Во время отладки внутри «что мне нужно делать» работает отлично, но проверка в If всегда верна, даже если обратная сторона ячейки, которую я дважды щелкаю, предварительно установлена ​​на vbInactiveBorder.

+0

Вы пытались проверить цвет фона ячейки, а не всю сетку? Что вы делаете, чтобы установить цвет фона ячейки? – Deanna

+0

Вы уверены, что '.BackColor' - цвет фона ячейки? Это [цвет фона по умолчанию] (http://msdn.microsoft.com/en-us/library/aa228900 (v = vs.60) .aspx) здесь с ['.CellBackColor'] (http: // msdn. microsoft.com/en-us/library/aa239821(v=vs.60).aspx) - цвет фона ячейки. «BackColor влияет на цвет всех нефиксированных ячеек. Чтобы установить цвет фона отдельных ячеек, используйте свойство CellBackColor». – Deanna

+0

Да, это .cellbackcolor теперь работает отлично! thenak вы очень @Deanna –

ответ

2

Вы проверяете неправильное свойство.

.BackColor относится к цвету элементов фона по умолчанию. Попробуйте проверить .CellBackColor, чтобы получить цвет фона текущей ячейки.

Из MSDN:

BackColor влияет на цвет всех нефиксированных клеток. Чтобы установить цвет фона для отдельных ячеек, используйте свойство CellBackColor.