Страница 1 из 1

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

Добавлено: 30 окт 2007, 04:34
Stilux
Подскажите пожалуйста, как заблокировать для пользователя
возможность редактирования словаря?
В конфигурации все соответствующие кнопки и пункты меню я убрал,
но осталась реакция на DuobleClick!
Нельзя ли сделать доступным из вне, контрол отображающий словарь?

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

Добавлено: 31 окт 2007, 08:27
Vital
Добраться до него можно так:

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

StiDictionaryPanelService service = StiDictionaryPanelService.GetService(Designer);
service.DictionaryControl
Спасибо.

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

Добавлено: 31 окт 2007, 12:20
Stilux
Vital писал(а):Добраться до него можно так:

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

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

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

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

Спасибо.

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

Добавлено: 19 ноя 2007, 06:04
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 вы заблокировали, а скрыть кнопки забыли...
И было бы не плохо, иметь возможность, полностью скрывать эту панель с кнопками, если они все не видны.


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

Добавлено: 21 ноя 2007, 13:26
Edward
Да, действительно, проблема присутсвует.

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

Спасибо.

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

Добавлено: 22 ноя 2007, 11:42
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.

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

Добавлено: 27 ноя 2007, 21:23
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 ноября.

Спасибо.