#c# #solidworks
#c# #solidworks
Вопрос:
В Solidworks eDrawings API перечислены следующие
Свойство EnableFeature (IEModelViewControl)
Visual Basic (использование)
Dim instance As IEModelViewControl
Dim feature As EMVEnableFeatures
Dim value As System.Boolean
instance.EnableFeature(feature) = value
value = instance.EnableFeature(feature)
Solidworks предоставляет «примерное» решение (C#.NET ), для которого следующее является контрольным
this.eDrawingControl1 = new eDrawingHostControl.eDrawingControl();
Заглянув в пространство имен eDrawingHost.eDrawingControl, мы видим
public EModelViewControl eDrawingControlWrapper { get; }
Так что я бы подумал
eDrawingControl1.eDrawingControlWrapper.EnableFeature(feature) = true;
будет работать, но вместо этого я получаю
Не вызываемый элемент ‘IEModelViewControl.EnableFeature[EMVEnableFeatures]’ не может использоваться как метод.
В качестве доказательства того, что экземпляр в порядке и работает правильно, что-то вроде
eDrawingControl1.eDrawingControlWrapper.Save(@"filePath", false,"");
работает отлично.
Я неправильно понимаю синтаксис C # для установки такого свойства (enum)?
Комментарии:
1. VB.Net позволяет передавать параметры в свойства, но c # этого не делает.
2. Ошибка указывает на то, что у вас есть свойство без параметра, например : .EnableFeature = true ; Свойство применяется к экземпляру объекта. У вас есть экземпляр метода сохранения: eDrawingControl1.eDrawingControlWrapper
Ответ №1:
Похоже, что их оболочка использует именованный индексатор, чего вы не можете сделать в C #. Однако вы можете использовать его из C#:
eDrawingControl1.eDrawingControlWrapper.EnableFeature[feature] = true;
Комментарии:
1. Спасибо! Я клялся, что пробовал это, но, по-видимому, все, что я делал в прошлый раз, было не так.