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

Как перетащить мышью название слоя

Добавлено: 23 ноя 2011, 04:59
Arman
Доброго всем времени суток. Подскажите пожалуйста, можно-ли обработать нажатие кнопки мыши на названии слоя в "Table of Contents", и перетащить это название допустим в textbox на созданной мной форме. Использую ArcMap 9.3, Visual Studio 2005, C#.

Re: Как перетащить мышью название слоя

Добавлено: 23 ноя 2011, 08:43
novia
не хотите пункт в контекстное меню слоя добавить? (а-ля команда "отправить в textbox"?

Re: Как перетащить мышью название слоя

Добавлено: 23 ноя 2011, 08:56
Arman
Я хочу добавить некоторый элемент "игры" в процесс =) а вообще возможно обработать такое событие мыши?

Re: Как перетащить мышью название слоя

Добавлено: 23 ноя 2011, 22:07
Дмитрий Барышников
За события в TOC отвечает интерфейс ITOCControlEvents. Там есть метод OnMouseDown.
Есть интерфейс IContentsView у которого можно получить хэндл окна и дальше djpvj;yj пользоваться виндовым механизмом DnD.
Кроме того есть интерфейс IGxPasteTarget который по идее должен расширить ваш textbox функционалом принимать DnD.
Еще смотрите IClipboardFormat и LayersClipboardFormat.

Re: Как перетащить мышью название слоя

Добавлено: 29 ноя 2011, 07:25
Arman
Хэндл получил, но что дальше сним сделать не могу понять =( Как я понял надо получить TOCControl, но информацию нашел только для TOC как компонента на форме:

ESRI.ArcGIS.TOCControl.AxTOCControl axTOCControl1;
ITOCControl TOCControl;
m_TOCControl = (ITOCControl) axTOCControl1.Object;

А как получить m_TOCControl для ArcMap если я работаю с таблицей самого ArcMap?

Re: Как перетащить мышью название слоя

Добавлено: 29 ноя 2011, 09:23
Дмитрий Барышников