Работа со словарем в StiDesignerControl...

Обсуждение Stimulsoft Reports.NET
Ответить
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Работа со словарем в StiDesignerControl...

Сообщение Stilux »

Подскажите пожалуйста, как заблокировать для пользователя
возможность редактирования словаря?
В конфигурации все соответствующие кнопки и пункты меню я убрал,
но осталась реакция на DuobleClick!
Нельзя ли сделать доступным из вне, контрол отображающий словарь?
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Работа со словарем в StiDesignerControl...

Сообщение Vital »

Добраться до него можно так:

Код: Выделить всё

StiDictionaryPanelService service = StiDictionaryPanelService.GetService(Designer);
service.DictionaryControl
Спасибо.
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Работа со словарем в StiDesignerControl...

Сообщение Stilux »

Vital писал(а):Добраться до него можно так:

Код: Выделить всё

StiDictionaryPanelService service = StiDictionaryPanelService.GetService(Designer);
service.DictionaryControl
Спасибо.
Подписываюсь на событие DoubleClick объекта полученного из service.DictionaryControl,
и тишина... Похоже StiDesignerControl перехватывает это событие! Подскажите, как
заблокировать словарь?
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Работа со словарем в StiDesignerControl...

Сообщение Vital »

Этот контрол является всего лишь контейнером. Нужно подписываться к DictionaryControl.tvData.
Внесли корректировку в код - если кнопка Edit не видна, то и событие Double Click на редактирование не отрабатывает.

Спасибо.
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Работа со словарем в StiDesignerControl...

Сообщение Stilux »

Vital писал(а):Этот контрол является всего лишь контейнером. Нужно подписываться к DictionaryControl.tvData.
Внесли корректировку в код - если кнопка Edit не видна, то и событие Double Click на редактирование не отрабатывает.

Спасибо.
Использую следующий код для настройки DictionaryControl:

Код: Выделить всё

Dim service As StiDictionaryPanelService = StiDictionaryPanelService.GetService(designer)

                service.SetDictionaryDelete(False)
                service.SetDictionaryEdit(False)
                service.SetDictionaryViewData(False)
                service.SetDictionaryColumnNew(False)
                service.SetDictionaryDatabaseNew(False)
                service.SetDictionaryDataParameterNew(False)

                service.ShowActionsButton = False
                service.ShowCategoryNewMenuItem = False
                service.ShowColumnNewMenuItem = False
                service.ShowConnectionNewMenuItem = False
                service.ShowContextMenu = False
                service.ShowCreateFieldOnDoubleClick = False
                service.ShowCreateLabel = False
                service.ShowDataParameterNewMenuItem = False
                service.ShowDataSourceNewMenuItem = False
                service.ShowDataSourcesNewMenuItem = False
                service.ShowDeleteButton = False
                service.ShowDeleteMenuItem = False
                service.ShowDictMergeMenuItem = False
                service.ShowDictNewMenuItem = False
                service.ShowDictOpenMenuItem = False
                service.ShowDictSaveMenuItem = False
                service.ShowDictXmlExportMenuItem = False
                service.ShowDictXmlImportMenuItem = False
                service.ShowDictXmlMergeMenuItem = False
                service.ShowDownButton = False
                service.ShowEditButton = False
                service.ShowEditMenuItem = False
                service.ShowExpandAllMenuItem = False
                service.ShowMarkUsedMenuItem = False
                service.ShowNewButton = False
                service.ShowPropertiesMenuItem = False
                service.ShowRelationNewMenuItem = False
                service.ShowRelationsImportMenuItem = False
                service.ShowRemoveUnusedMenuItem = False
                service.ShowSynchronizeMenuItem = False
                service.ShowUpButton = False
                service.ShowVariableNewMenuItem = False
                service.ShowViewDataMenuItem = False
В результате кнопки 'Action', 'New Item', 'Delete' не работают, но попрежнему видны!
Так же видны CheckBox в нижней части редактора словаря: 'Use Aliases', 'Create Label' и 'Create Label on Double Click'.
Т.е. реакцию на Click вы заблокировали, а скрыть кнопки забыли...
И было бы не плохо, иметь возможность, полностью скрывать эту панель с кнопками, если они все не видны.

Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Работа со словарем в StiDesignerControl...

Сообщение Edward »

Да, действительно, проблема присутсвует.

Мы известим Вас в этом топике, когда ошибка будет исправлена.

Спасибо.
Stilux
Сообщения: 94
Зарегистрирован: 22 фев 2007, 09:02

Работа со словарем в StiDesignerControl...

Сообщение Stilux »

Edward писал(а):Да, действительно, проблема присутсвует.

Мы известим Вас в этом топике, когда ошибка будет исправлена.

Спасибо.
Попытался пойти другим путем, а именно, с помощью
конфигуратора настроил xml-файл.
Далее динамически подгружаю этот конфиг-файл:

Код: Выделить всё

StiConfig.Load(Me.DesignerConfigPath)
Если в файле, для свойства ShowCreateFieldOnDoubleClick поставить false, то
при запуске ловим:

Код: Выделить всё

An unhandled exception of type 'System.OutOfMemoryException' occurred in system.windows.forms.dll

Additional information: Error creating window handle.
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Работа со словарем в StiDesignerControl...

Сообщение Vital »

Здравствуйте,

пожалуйста используйте следующий код:

Код: Выделить всё

                Dim service As StiDictionaryPanelService = StiDictionaryPanelService.GetService()

                service.ShowActionsButton = False
                service.ShowCategoryNewMenuItem = False
                service.ShowColumnNewMenuItem = False
                service.ShowConnectionNewMenuItem = False
                service.ShowContextMenu = False
                service.ShowCreateFieldOnDoubleClick = False
                service.ShowCreateLabel = False
                service.ShowDataParameterNewMenuItem = False
                service.ShowDataSourceNewMenuItem = False
                service.ShowDataSourcesNewMenuItem = False
                service.ShowDeleteButton = False
                service.ShowDeleteMenuItem = False
                service.ShowDictMergeMenuItem = False
                service.ShowDictNewMenuItem = False
                service.ShowDictOpenMenuItem = False
                service.ShowDictSaveMenuItem = False
                service.ShowDictXmlExportMenuItem = False
                service.ShowDictXmlImportMenuItem = False
                service.ShowDictXmlMergeMenuItem = False
                service.ShowDownButton = False
                service.ShowEditButton = False
                service.ShowEditMenuItem = False
                service.ShowExpandAllMenuItem = False
                service.ShowMarkUsedMenuItem = False
                service.ShowNewButton = False
                service.ShowPropertiesMenuItem = False
                service.ShowRelationNewMenuItem = False
                service.ShowRelationsImportMenuItem = False
                service.ShowRemoveUnusedMenuItem = False
                service.ShowSynchronizeMenuItem = False
                service.ShowUpButton = False
                service.ShowVariableNewMenuItem = False
                service.ShowViewDataMenuItem = False
Этот код нужно вызвать до создания дизайнера. Кроме этого мы внесли некоторые изменения в наш код. Пожалуйста воспользуйтесь билдом от 28 ноября.

Спасибо.
Ответить