Я пишу элемент управления ActiveX COM в C #.В этом элементе управления есть свойство «Значение», которое я пытаюсь выставить как свойство по умолчанию.
Вот определение Typelib:
[id(0x00000002), propget, bindable, requestedit, displaybind, defaultbind, helpstring("Returns/sets the current date.")]
HRESULT Value([out, retval] VARIANT* pRetVal);
[id(0x00000002), propput, bindable, requestedit, displaybind, defaultbind, helpstring("Returns/sets the current date.")]
HRESULT Value([in] VARIANT pRetVal);
Реализация свойства проста:
public object Value
{
get { return BaseControl.Value.Date; }
set
{
DateTime dt;
//BaseControl is a DateTimePicker control.
BaseControl.Value = DateTime.TryParse((value ?? "").ToString(), out dt) ? dt : DateTime.Today;
}
}
При использовании этого элемента управления в VBA я могу установить \ ПолучитьValue
свойство, подобное этому
Private Sub Test()
Me.DTPicker1.Value = Date - 5
End Sub
Но когда я пытаюсь использовать версию по умолчанию,
Private Sub Test2()
'/Default property access
Me.DTPicker1 = Date - 5
End Sub
Выдает ошибку,
438: Объект не поддерживает это свойство или метод.
Есть идеи, почему не работает режим по умолчанию?