|
|
|
VSTO 2010 Excel Style, копирование заранее заданных стилей
|
|||
|---|---|---|---|
|
#18+
Приветствую всех! Помогите, пожалуйста, разобраться с задачей выделения строк. Есть прайс-лист с надстройкой AddIn (собственно ее и пишу с помощью VSTO), в этой настройке есть две кнопки (Выделить, Снять выделение). Необходимо по клику на кнопке "Выделить" выделять выбранную строку (выделить графически, например, задать фон желтого цвета), а по клику по второй, соответственно снимать ранее выставленное выделение (возвращать значение стилей к первоначальному значению). Все индексы выделенных строк записываются в формате - [WorksheetIndex, RowIndex]. Прайс-лист разукрашенный (колонки названия продукта и цены имеют заданный цвет, остальные колонки могут быть одного цвета), суть в том, что после снятия выделения нужно вернуть стили по-умолчанию (каждой колонке должен быть установлен цвет, который был изначально до выделения). Пробовал скопировать стиль строки и сохранить в переменной, примерно так: Style nonSelectedRowStyle = Worksheet.Rows[индекс строки, Type.Missing].Style; Затем пробовал задавать ему различные изменения и применять к выделенным строкам, так: nonSelectedRowStyle.Font.Bold = true; или подобное. Проблема в том, что все эти изменения отображаются на всем листе (т.е. есть связь между стилем прайс-листа и скопированным в переменную). Еще цветовое оформление отдельных колонок пропадало (я думал, что скопировав стиль всей строки, стили отдельных ячеек так же будут скопированы), но увы(( Помогите, пожалуйста, примером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2011, 22:03 |
|
||
|
VSTO 2010 Excel Style, копирование заранее заданных стилей
|
|||
|---|---|---|---|
|
#18+
Santa_RND, затерев форматирование строки, вы его целиком не восполните. (разве что предварительно запомните в сотнях переменных исходные значения параметров форматирования для каждой перекрашиваемой ячейки) Есть, конечно, вариант создания доп. листа (скрытого) на основе обрабатываемого (до начала обработки, с исходным форматированием), и потом восстанавливать форматирование путём его копирования со скрытого листа-оригинала, но этот способ тоже не назвать оптимальным. Раз уж так надо выделять строки именно форматированием, - используйте УСЛОВНОЕ ФОРМАТИРОВАНИЕ. Оно перекрывает обычное, и при удалении УФ она восстанавливает прежний вид. Кода в этом случае тоже много, но восстановить форматирование ячейки будет намного проще (если, конечно, ячейки изначального прайса не имеют условного форматирования) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2011, 21:55 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=120&tid=2176468]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 332ms |

| 0 / 0 |
