Как я могу проверить тип DataGridViewCell? - PullRequest
0 голосов
/ 20 сентября 2011

Я пытался проверить, является ли myDataGridViewCell объектом DataGridViewCheckBoxCell

if(myDataGridViewCell.ValueType is DataGridViewCheckBoxCell) ...

, но при этом выдается предупреждение:

Данное выражение никогда не соответствует указанному 'System.Windows.Forms.DataGridViewCheckBoxCell ') type

Как проверить тип DataGridViewCell?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

ValueType - это тип значений данных, которые содержит ячейка. Это не то, что вы хотите.

Чтобы проверить тип ячейки самой по себе, просто выполните:

if (myDataGridViewCell is DataGridViewCheckBoxCell)
 ...

(будет верно для DataGridViewCheckBoxCell и всех подтипов)

или

if (myDataGridViewCheckBoxCell != null &&
    myDataGridViewCheckBoxCell.GetType() == typeof(DataGridViewCheckBoxCell))
    ...

(будет верно только для DataGridViewCheckBoxCell).

2 голосов
/ 20 сентября 2011
if (myDataGridViewCell is DataGridViewCheckBoxCell)

Ваш код проверяет, можно ли преобразовать значение ValueType свойства в DataGridViewCheckBoxCell.
Поскольку ValueType всегда содержит экземпляр System.Type, он никогда не будет DataGridViewCheckBoxCell, поэтому компилятор выдает предупреждение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...