Переопределение метода Clone базового класса

ваш заменяющий метод должен возвращать

Другим важным моментом определения специального типа столбца является переопределение метода Clone Базового класса. Ваш заменяющий метод должен возвращать новую копию вашего столбца, все свойства которого установлены теми же значениями, что и в текущем экземпляре столбца. Этот метод используется редакторами столбцов Visual Studio для добавления и редактирования столбцов сетки в диалогах, показанных на рис. 6.4 и 6.5. Последнее, что делается в специальном классе столбца — это переопределение свойства CellTempiate. Если кто-то обращается к значению CellTempiate, Код получает его из базового класса. Но если кто-то попытается изменить CellTempiate, Установщик проверит, что устанавливаемым типом ячейки является StatusCell. Если это не так, он возбуждает исключение, предотвращая тем самым программную установку неправильного типа ячейки для данного столбца. Это не помешает вам в случае гетерогенной сетки размещать в столбце ячейки других типов. Теперь, когда вы определили специальные типы ячейки и столбца, как вы можете их использовать? Конечно, вы можете ввести эти определения в качестве части любого проекта Visual Studio, но вообще, когда вы создаете нечто подобное, имеет смысл утилизировать это в различных приложениях. Если вы хотите утилизировать код, вам нужно поместить этот код в библиотеку классов. Поэтому вы определяете проект библиотеки классов, добавляете в библиотеку, в качестве встроенных в проект ресурсов, только что описанные классы вместе с изображениями, которые вы хотите выводить для представления состояний. В результате будет создана сборка, на которую вы можете ссылаться из любого приложения Windows, где вы захотите использовать свои типы ячейки и столбца. Для этого требуется лишь установить ссылку на сборку в проекте Windows Forms, где вы хотите их использовать, и специальные типы столбцов появятся в диалоге Add Column, как показано на рис. 6.8 . В своем приложении Windows Forms вы можете добавить к сетке столбец StatusColumn Либо программно, либо воспользоваться для этого конструктором. Если вы добавите столбец при помощи конструктора и посмотрите затем на диалог Edit Colums, вы увидите, что в списке свойств появилось свойство DefaultStatus, Которое можно устанавливать его допустимыми значениями.