Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 28
1

Подскажите, как добавить свои свойства?

12.11.2013, 17:09. Показов 1364. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
using Microsoft.Office.Interop.Visio;
...
...
...
foreach (Shape shape in shapes)
  {              
  //Существующее расположение центра шейпа в глобальной системе координат листа
  double PinX = shape.get_CellsSRC((short)VisSectionIndices.visSectionObject, (short)VisRowIndices.visRowXFormOut, (short)VisCellIndices.visXFormPinX).get_Result(VisUnitCodes.visMillimeters);
  double PinY = shape.get_CellsSRC((short)VisSectionIndices.visSectionObject, (short)VisRowIndices.visRowXFormOut, (short)VisCellIndices.visXFormPinY).get_Result(VisUnitCodes.visMillimeters);
 }
Таких строк shape.get_CellsSRC.... много, тяжело каждый раз так стучать до каждого параметра шейпа.
Можно как то добавить мои свойства именно к shape? Прописать там под get и set эти полотна запроса и в результате, чтобы я пользовался стройкой типа: double PinX = shape.PinX;??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2013, 17:09
Ответы с готовыми решениями:

Как добавить свои команды для консоли ?
Мне надо сделать программу с меню консольным и при вводе определённой команды выполнялось...

Как для стандартного RichTextBox создать свои дополнительные свойства
Для примера, возьмем стандартный метод для RichTextBox richTextBox1.ForeColor = Color.Red; ...

Как добавить свои поля к записи WP?
Доброго дня. Нужно встроить плагин и добавить возможность ввода значений во время создания...

Как добавить свои пункты в меню системы?
как добавить пункты в меню вызываемое правой кнопкой мыши например, файл XLS, на нем жму правую...

6
26 / 26 / 9
Регистрация: 22.09.2012
Сообщений: 116
12.11.2013, 17:11 2
создать свой класс, унаследованный от Shape, и там прописать свои методы
или статический класс с методом, которому передается Shape, а он возвращает то, что нужно вам
1
51 / 51 / 14
Регистрация: 12.01.2013
Сообщений: 779
12.11.2013, 17:12 3
C#
1
2
3
4
class MyShape : Shape
{
   // ваше свойства
}
1
192 / 192 / 29
Регистрация: 03.12.2009
Сообщений: 853
12.11.2013, 17:56 4
А так?
C#
1
2
3
4
5
6
7
static ShapeHelper
{
 public static double GetX(this Shape shape)
  {
    return shape.get_CellsSRC((short)VisSectionIndices.visSectionObject, (short)VisRowIndices.visRowXFormOut, (short)VisCellIndices.visXFormPinX).get_Result(VisUnitCodes.visMillimeters);
  }
}
http://msdn.microsoft.com/ru-r... 83977.aspx
1
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 28
12.11.2013, 18:13  [ТС] 5
Цитата Сообщение от CSharp Посмотреть сообщение
C#
1
2
3
4
class MyShape : Shape
{
   // ваше свойства
}
Так я пробовал, там более 200 ошибок типа:
"VisioEventsExample.MyShape" не реализует член интерфейса "Microsoft.Office.Interop.Visio.EShape_Event.CellChanged"

Сейчас попробую прочие советы.
0
192 / 192 / 29
Регистрация: 03.12.2009
Сообщений: 853
12.11.2013, 18:23 6
Цитата Сообщение от da1z Посмотреть сообщение
static ShapeHelper
описка. Тут static class ShapeHelper
1
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 28
12.11.2013, 23:12  [ТС] 7
Цитата Сообщение от da1z Посмотреть сообщение
А так?
Спасибо, буду пользоваться вашим вариантом. Статью читал, интерфейсы мне не подходят похоже.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static class ShapeHelper
{
    public static double GetX(Shape shape)
        {
             return shape.get_CellsSRC((short)VisSectionIndices.visSectionObject,
(short)VisRowIndices.visRowXFormOut,
(short)VisCellIndices.visXFormPinX).get_Result(VisUnitCodes.visMillimeters);
        }
    public static double SetX(Shape shape,double MyVal)
        {
            shape.get_CellsSRC((short)VisSectionIndices.visSectionObject,
(short)VisRowIndices.visRowXFormOut,
(short)VisCellIndices.visXFormPinX).set_Result(VisUnitCodes.visMillimeters,MyVal);
            return 1;
    }
}
Правильно реализовано задание нового значения? Оно то работает.... но этот return 1
я нигде не задействую потом.

Добавлено через 2 часа 9 минут
Наверое так даже лучше:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public static class MyExtensions
        {
            public static double PinX_Get(this Shape shape)
            {
                return shape.get_CellsSRC((short)VisSectionIndices.visSectionObject,(short)VisRowIndices.visRowXFormOut,(short)VisCellIndices.visXFormPinX).get_Result(VisUnitCodes.visMillimeters);
            }
            public static double PinX_Set(this Shape shape, double Value1)
            {
               shape.get_CellsSRC((short)VisSectionIndices.visSectionObject, (short)VisRowIndices.visRowXFormOut, (short)VisCellIndices.visXFormPinX).set_Result(VisUnitCodes.visMillimeters,Value1);
               return 1;
            }
        }
Тогда обращение будет как к "родным" свойствам:

C#
1
2
Console.WriteLine( "Мой результат: {0}",shape.PinX_Get());
Console.WriteLine("Мой результат: {0}", shape.PinX_Set(200));
Подскажите, правильно реализовано присваивание в PinX_Set?
0
12.11.2013, 23:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2013, 23:12
Помогаю со студенческими работами здесь

Как в шаблон joomla 3.3 добавить свои модули?
Скажите, вот есть шаблон joomla 3 . Там есть свои позиции. Но можно ли мне добавить свою позицию....

Таблица символов, как добавить свои буквы???
Подскажите пожалуйста, вот я хочу добавить в таблицею символов вот эти буквы - Қ Ў ...

Как добавить разделитель и свои иконки на кнопки в тулбаре Excel
Нужна помощь. Не знаю как добавить сепаратор и свое изображение на копки, созданного мной тулбара в...

Подскажите,как мне здесь формулы свои писать?
Есть какое-то приложение для Word,где можно писать математические формулы. Подскажите пожалуйста....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru