Home All Groups Group Topic Archive Search About

nullptr for a property

Author
24 Oct 2006 6:56 PM
--== Alain ==--
Hi,

I would like to define the default value of my property.
My property is from type Bitmap^, therefore i was thinking to do :

[DefaultValueAttribute(nullptr)]

but i does not work.
how is it possible to define this property to no pointer ?

thx.

ALain

Author
25 Oct 2006 5:38 PM
--== Alain ==--
here is my code :

#pragma region public Property : ImageSortAscendant
// Allow user to select the image which will be displayed for column
sorted ascendantly

[System::ComponentModel::DefaultPropertyAttribute (nullptr)]
property Bitmap^ ImageSortAscendant
{
  Bitmap^ get()
  {
   return m_ImageSortA;
  }
  void set(System::Drawing::Bitmap^ value)
  {
   m_ImageSortA = value;
  }
}
#pragma endregion

but when i try to compile, i have the following error :
...\RAF_ListView.h(177) : error C3115:
'System::ComponentModel::DefaultPropertyAttribute': this attribute is
not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'

how could it be possible ?
thanks,

Al.

--== Alain ==-- wrote:
Show quote
> Hi,
>
> I would like to define the default value of my property.
> My property is from type Bitmap^, therefore i was thinking to do :
>
> [DefaultValueAttribute(nullptr)]
>
> but i does not work.
> how is it possible to define this property to no pointer ?
>
> thx.
>
> ALain
Author
26 Oct 2006 1:06 AM
Carl Daniel [VC++ MVP]
--== Alain ==-- wrote:
Show quote
> here is my code :
>
> #pragma region public Property : ImageSortAscendant
> // Allow user to select the image which will be displayed for column
> sorted ascendantly
>
> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
> property Bitmap^ ImageSortAscendant
> {
>  Bitmap^ get()
>  {
>   return m_ImageSortA;
>  }
>  void set(System::Drawing::Bitmap^ value)
>  {
>   m_ImageSortA = value;
>  }
> }
> #pragma endregion
>
> but when i try to compile, i have the following error :
> ..\RAF_ListView.h(177) : error C3115:
> 'System::ComponentModel::DefaultPropertyAttribute': this attribute is
> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>
> how could it be possible ?

It's not necessary.  If you simply don't assign a value to the property (or
the private field that backs it up), then it WILL be null.

The DefaultProperty attribute is applied to a class and names the default
property of the class.  It does not provide a default value for a property,
which is apparently what you're trying to do.

-cd
Author
26 Oct 2006 2:06 AM
Bryan Phillips
He might be trying to set the default value of the property if he is
planning on designing the class.  It won't default the value when the
instance is created but it will allow the designer to reset the value of
the property and exclude the redundant value when the instance is
serialized to xml or codedom.

Bryan Phillips
MCSD, MCDBA, MCSE
Blog:  http://bphillips76.spaces.live.com




"Carl Daniel [VC++ MVP]"
<cpdaniel_remove_this_and_nospam@mvps.org.nospam> wrote in message
Show quote
news:O4jn5rJ#GHA.3860@TK2MSFTNGP02.phx.gbl:

> --== Alain ==-- wrote:
>
> > here is my code :
> >
> > #pragma region public Property : ImageSortAscendant
> > // Allow user to select the image which will be displayed for column
> > sorted ascendantly
> >
> > [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
> > property Bitmap^ ImageSortAscendant
> > {
> >  Bitmap^ get()
> >  {
> >   return m_ImageSortA;
> >  }
> >  void set(System::Drawing::Bitmap^ value)
> >  {
> >   m_ImageSortA = value;
> >  }
> > }
> > #pragma endregion
> >
> > but when i try to compile, i have the following error :
> > ..\RAF_ListView.h(177) : error C3115:
> > 'System::ComponentModel::DefaultPropertyAttribute': this attribute is
> > not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
> >
> > how could it be possible ?
>
>
> It's not necessary.  If you simply don't assign a value to the property (or
> the private field that backs it up), then it WILL be null.
>
> The DefaultProperty attribute is applied to a class and names the default
> property of the class.  It does not provide a default value for a property,
> which is apparently what you're trying to do.
>
> -cd
Author
26 Oct 2006 6:44 AM
--== Alain ==--
Thanks Carl, but i went to this direction according to my other issue...

when i assigned a bitmap to this property, it's ok and everything works.
However, once a bitmap is assigned, and i want to delete this
assignment, i usually use select the property value in property editor
and press delete key...
it clear the property field value and it should display (none) as usual...

but nothing happens... since i assign a bitmap, i can not have anymore
this property field value to (none). I can only assign another bitmap,
but never clear the field :-(

do you have an idea ?

thx.

Al.

Carl Daniel [VC++ MVP] wrote:
Show quote
> --== Alain ==-- wrote:
>> here is my code :
>>
>> #pragma region public Property : ImageSortAscendant
>> // Allow user to select the image which will be displayed for column
>> sorted ascendantly
>>
>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>> property Bitmap^ ImageSortAscendant
>> {
>>  Bitmap^ get()
>>  {
>>   return m_ImageSortA;
>>  }
>>  void set(System::Drawing::Bitmap^ value)
>>  {
>>   m_ImageSortA = value;
>>  }
>> }
>> #pragma endregion
>>
>> but when i try to compile, i have the following error :
>> ..\RAF_ListView.h(177) : error C3115:
>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute is
>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>
>> how could it be possible ?
>
> It's not necessary.  If you simply don't assign a value to the property (or
> the private field that backs it up), then it WILL be null.
>
> The DefaultProperty attribute is applied to a class and names the default
> property of the class.  It does not provide a default value for a property,
> which is apparently what you're trying to do.
>
> -cd
>
>
Author
26 Oct 2006 7:04 AM
Lloyd Dupont
You could try the
DefaultValueAttribute instead...

Show quote
"--== Alain ==--" <nospam@noemail.com> wrote in message
news:esA26oM%23GHA.4428@TK2MSFTNGP04.phx.gbl...
> Thanks Carl, but i went to this direction according to my other issue...
>
> when i assigned a bitmap to this property, it's ok and everything works.
> However, once a bitmap is assigned, and i want to delete this assignment,
> i usually use select the property value in property editor and press
> delete key...
> it clear the property field value and it should display (none) as usual...
>
> but nothing happens... since i assign a bitmap, i can not have anymore
> this property field value to (none). I can only assign another bitmap, but
> never clear the field :-(
>
> do you have an idea ?
>
> thx.
>
> Al.
>
> Carl Daniel [VC++ MVP] wrote:
>> --== Alain ==-- wrote:
>>> here is my code :
>>>
>>> #pragma region public Property : ImageSortAscendant
>>> // Allow user to select the image which will be displayed for column
>>> sorted ascendantly
>>>
>>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>>> property Bitmap^ ImageSortAscendant
>>> {
>>>  Bitmap^ get()
>>>  {
>>>   return m_ImageSortA;
>>>  }
>>>  void set(System::Drawing::Bitmap^ value)
>>>  {
>>>   m_ImageSortA = value;
>>>  }
>>> }
>>> #pragma endregion
>>>
>>> but when i try to compile, i have the following error :
>>> ..\RAF_ListView.h(177) : error C3115:
>>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute is
>>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>>
>>> how could it be possible ?
>>
>> It's not necessary.  If you simply don't assign a value to the property
>> (or the private field that backs it up), then it WILL be null.
>>
>> The DefaultProperty attribute is applied to a class and names the default
>> property of the class.  It does not provide a default value for a
>> property, which is apparently what you're trying to do.
>>
>> -cd
>>
Author
26 Oct 2006 5:46 PM
--== Alain ==--
My problem is not to assign a value to this property. I think it it how
to clear it, if user press DELETE, BACKSPACE keys when this property has
the focus in the property editor.

For example if i assign a bitmap to form thanks backgroundimage
property, just by pressing delete, this property is cleared.
i would like to have the same for my property..

that's all

Al.

Lloyd Dupont wrote:
Show quote
> You could try the
> DefaultValueAttribute instead...
>
> "--== Alain ==--" <nospam@noemail.com> wrote in message
> news:esA26oM%23GHA.4428@TK2MSFTNGP04.phx.gbl...
>> Thanks Carl, but i went to this direction according to my other issue...
>>
>> when i assigned a bitmap to this property, it's ok and everything works.
>> However, once a bitmap is assigned, and i want to delete this assignment,
>> i usually use select the property value in property editor and press
>> delete key...
>> it clear the property field value and it should display (none) as usual...
>>
>> but nothing happens... since i assign a bitmap, i can not have anymore
>> this property field value to (none). I can only assign another bitmap, but
>> never clear the field :-(
>>
>> do you have an idea ?
>>
>> thx.
>>
>> Al.
>>
>> Carl Daniel [VC++ MVP] wrote:
>>> --== Alain ==-- wrote:
>>>> here is my code :
>>>>
>>>> #pragma region public Property : ImageSortAscendant
>>>> // Allow user to select the image which will be displayed for column
>>>> sorted ascendantly
>>>>
>>>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>>>> property Bitmap^ ImageSortAscendant
>>>> {
>>>>  Bitmap^ get()
>>>>  {
>>>>   return m_ImageSortA;
>>>>  }
>>>>  void set(System::Drawing::Bitmap^ value)
>>>>  {
>>>>   m_ImageSortA = value;
>>>>  }
>>>> }
>>>> #pragma endregion
>>>>
>>>> but when i try to compile, i have the following error :
>>>> ..\RAF_ListView.h(177) : error C3115:
>>>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute is
>>>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>>>
>>>> how could it be possible ?
>>> It's not necessary.  If you simply don't assign a value to the property
>>> (or the private field that backs it up), then it WILL be null.
>>>
>>> The DefaultProperty attribute is applied to a class and names the default
>>> property of the class.  It does not provide a default value for a
>>> property, which is apparently what you're trying to do.
>>>
>>> -cd
>>>
>
Author
26 Oct 2006 6:07 PM
Lloyd Dupont
Well why don't you try the "DefaultValueAttribute" as I told you?
I think it's exactky what you need!


Anyway, FYI, here is what reflector says about Control.BackgroundImage:
[System::ComponentModel::DefaultValue(*static_cast<__box
System::String*>(0)), System::ComponentModel::Localizable(true),
System::Windows::Forms::SRDescription(S"ControlBackgroundImageDescr"),
System::Windows::Forms::SRCategory(S"CatAppearance")]
public: __property virtual System::Drawing::Image __gc*
get_BackgroundImage()
{
      return *static_cast<__box
System::Drawing::Image*>(this->Properties->GetObject(System::Windows::Forms::Control::PropBackgroundImage));
}public: __property virtual void __gc*
set_BackgroundImage(System::Drawing::Image __gc* value)
{
      if (this->BackgroundImage != value)
      {
            this->Properties->SetObject(System::Windows::Forms::Control::PropBackgroundImage,
value);
            this->OnBackgroundImageChanged(System::EventArgs::Empty);
      }
}



Show quote
"--== Alain ==--" <nospam@noemail.com> wrote in message
news:eNWBvaS%23GHA.4268@TK2MSFTNGP02.phx.gbl...
> My problem is not to assign a value to this property. I think it it how to
> clear it, if user press DELETE, BACKSPACE keys when this property has the
> focus in the property editor.
>
> For example if i assign a bitmap to form thanks backgroundimage property,
> just by pressing delete, this property is cleared.
> i would like to have the same for my property..
>
> that's all
>
> Al.
>
> Lloyd Dupont wrote:
>> You could try the
>> DefaultValueAttribute instead...
>>
>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>> news:esA26oM%23GHA.4428@TK2MSFTNGP04.phx.gbl...
>>> Thanks Carl, but i went to this direction according to my other issue...
>>>
>>> when i assigned a bitmap to this property, it's ok and everything works.
>>> However, once a bitmap is assigned, and i want to delete this
>>> assignment, i usually use select the property value in property editor
>>> and press delete key...
>>> it clear the property field value and it should display (none) as
>>> usual...
>>>
>>> but nothing happens... since i assign a bitmap, i can not have anymore
>>> this property field value to (none). I can only assign another bitmap,
>>> but never clear the field :-(
>>>
>>> do you have an idea ?
>>>
>>> thx.
>>>
>>> Al.
>>>
>>> Carl Daniel [VC++ MVP] wrote:
>>>> --== Alain ==-- wrote:
>>>>> here is my code :
>>>>>
>>>>> #pragma region public Property : ImageSortAscendant
>>>>> // Allow user to select the image which will be displayed for column
>>>>> sorted ascendantly
>>>>>
>>>>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>>>>> property Bitmap^ ImageSortAscendant
>>>>> {
>>>>>  Bitmap^ get()
>>>>>  {
>>>>>   return m_ImageSortA;
>>>>>  }
>>>>>  void set(System::Drawing::Bitmap^ value)
>>>>>  {
>>>>>   m_ImageSortA = value;
>>>>>  }
>>>>> }
>>>>> #pragma endregion
>>>>>
>>>>> but when i try to compile, i have the following error :
>>>>> ..\RAF_ListView.h(177) : error C3115:
>>>>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute is
>>>>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>>>>
>>>>> how could it be possible ?
>>>> It's not necessary.  If you simply don't assign a value to the property
>>>> (or the private field that backs it up), then it WILL be null.
>>>>
>>>> The DefaultProperty attribute is applied to a class and names the
>>>> default property of the class.  It does not provide a default value for
>>>> a property, which is apparently what you're trying to do.
>>>>
>>>> -cd
>>>>
>>
Author
26 Oct 2006 6:44 PM
--== Alain ==--
i tried but it does not work as expected :-(
when i see the code you wrote, it seems that an event is also added.
is it like that for all properties ? because i've not seen it till now.

moreover, where did you find the code below ? in help ?
i did not find it..

thx.
Al.

Lloyd Dupont wrote:
Show quote
> Well why don't you try the "DefaultValueAttribute" as I told you?
> I think it's exactky what you need!
>
>
> Anyway, FYI, here is what reflector says about Control.BackgroundImage:
> [System::ComponentModel::DefaultValue(*static_cast<__box
> System::String*>(0)), System::ComponentModel::Localizable(true),
> System::Windows::Forms::SRDescription(S"ControlBackgroundImageDescr"),
> System::Windows::Forms::SRCategory(S"CatAppearance")]
> public: __property virtual System::Drawing::Image __gc*
> get_BackgroundImage()
> {
>       return *static_cast<__box
> System::Drawing::Image*>(this->Properties->GetObject(System::Windows::Forms::Control::PropBackgroundImage));
> }public: __property virtual void __gc*
> set_BackgroundImage(System::Drawing::Image __gc* value)
> {
>       if (this->BackgroundImage != value)
>       {
>             this->Properties->SetObject(System::Windows::Forms::Control::PropBackgroundImage,
> value);
>             this->OnBackgroundImageChanged(System::EventArgs::Empty);
>       }
> }
>
>
>
> "--== Alain ==--" <nospam@noemail.com> wrote in message
> news:eNWBvaS%23GHA.4268@TK2MSFTNGP02.phx.gbl...
>> My problem is not to assign a value to this property. I think it it how to
>> clear it, if user press DELETE, BACKSPACE keys when this property has the
>> focus in the property editor.
>>
>> For example if i assign a bitmap to form thanks backgroundimage property,
>> just by pressing delete, this property is cleared.
>> i would like to have the same for my property..
>>
>> that's all
>>
>> Al.
>>
>> Lloyd Dupont wrote:
>>> You could try the
>>> DefaultValueAttribute instead...
>>>
>>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>>> news:esA26oM%23GHA.4428@TK2MSFTNGP04.phx.gbl...
>>>> Thanks Carl, but i went to this direction according to my other issue...
>>>>
>>>> when i assigned a bitmap to this property, it's ok and everything works.
>>>> However, once a bitmap is assigned, and i want to delete this
>>>> assignment, i usually use select the property value in property editor
>>>> and press delete key...
>>>> it clear the property field value and it should display (none) as
>>>> usual...
>>>>
>>>> but nothing happens... since i assign a bitmap, i can not have anymore
>>>> this property field value to (none). I can only assign another bitmap,
>>>> but never clear the field :-(
>>>>
>>>> do you have an idea ?
>>>>
>>>> thx.
>>>>
>>>> Al.
>>>>
>>>> Carl Daniel [VC++ MVP] wrote:
>>>>> --== Alain ==-- wrote:
>>>>>> here is my code :
>>>>>>
>>>>>> #pragma region public Property : ImageSortAscendant
>>>>>> // Allow user to select the image which will be displayed for column
>>>>>> sorted ascendantly
>>>>>>
>>>>>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>>>>>> property Bitmap^ ImageSortAscendant
>>>>>> {
>>>>>>  Bitmap^ get()
>>>>>>  {
>>>>>>   return m_ImageSortA;
>>>>>>  }
>>>>>>  void set(System::Drawing::Bitmap^ value)
>>>>>>  {
>>>>>>   m_ImageSortA = value;
>>>>>>  }
>>>>>> }
>>>>>> #pragma endregion
>>>>>>
>>>>>> but when i try to compile, i have the following error :
>>>>>> ..\RAF_ListView.h(177) : error C3115:
>>>>>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute is
>>>>>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>>>>>
>>>>>> how could it be possible ?
>>>>> It's not necessary.  If you simply don't assign a value to the property
>>>>> (or the private field that backs it up), then it WILL be null.
>>>>>
>>>>> The DefaultProperty attribute is applied to a class and names the
>>>>> default property of the class.  It does not provide a default value for
>>>>> a property, which is apparently what you're trying to do.
>>>>>
>>>>> -cd
>>>>>
>
>
Author
27 Oct 2006 12:43 AM
Lloyd Dupont
Google: Must have .NET developer tools
=> http://msdn.microsoft.com/msdnmag/issues/04/07/MustHaveTools/

Google: Reflector .NET
=> http://www.aisto.com/roeder/dotnet/

Reflector is the tool which will give you the source code from an MSIL.


Show quote
"--== Alain ==--" <nospam@noemail.com> wrote in message
news:urdB96S%23GHA.924@TK2MSFTNGP03.phx.gbl...
>i tried but it does not work as expected :-(
> when i see the code you wrote, it seems that an event is also added.
> is it like that for all properties ? because i've not seen it till now.
>
> moreover, where did you find the code below ? in help ?
> i did not find it..
>
> thx.
> Al.
>
> Lloyd Dupont wrote:
>> Well why don't you try the "DefaultValueAttribute" as I told you?
>> I think it's exactky what you need!
>>
>>
>> Anyway, FYI, here is what reflector says about Control.BackgroundImage:
>> [System::ComponentModel::DefaultValue(*static_cast<__box
>> System::String*>(0)), System::ComponentModel::Localizable(true),
>> System::Windows::Forms::SRDescription(S"ControlBackgroundImageDescr"),
>> System::Windows::Forms::SRCategory(S"CatAppearance")]
>> public: __property virtual System::Drawing::Image __gc*
>> get_BackgroundImage()
>> {
>>       return *static_cast<__box
>> System::Drawing::Image*>(this->Properties->GetObject(System::Windows::Forms::Control::PropBackgroundImage));
>> }public: __property virtual void __gc*
>> set_BackgroundImage(System::Drawing::Image __gc* value)
>> {
>>       if (this->BackgroundImage != value)
>>       {
>>
>> this->Properties->SetObject(System::Windows::Forms::Control::PropBackgroundImage,
>> value);
>>             this->OnBackgroundImageChanged(System::EventArgs::Empty);
>>       }
>> }
>>
>>
>>
>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>> news:eNWBvaS%23GHA.4268@TK2MSFTNGP02.phx.gbl...
>>> My problem is not to assign a value to this property. I think it it how
>>> to clear it, if user press DELETE, BACKSPACE keys when this property has
>>> the focus in the property editor.
>>>
>>> For example if i assign a bitmap to form thanks backgroundimage
>>> property, just by pressing delete, this property is cleared.
>>> i would like to have the same for my property..
>>>
>>> that's all
>>>
>>> Al.
>>>
>>> Lloyd Dupont wrote:
>>>> You could try the
>>>> DefaultValueAttribute instead...
>>>>
>>>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>>>> news:esA26oM%23GHA.4428@TK2MSFTNGP04.phx.gbl...
>>>>> Thanks Carl, but i went to this direction according to my other
>>>>> issue...
>>>>>
>>>>> when i assigned a bitmap to this property, it's ok and everything
>>>>> works.
>>>>> However, once a bitmap is assigned, and i want to delete this
>>>>> assignment, i usually use select the property value in property editor
>>>>> and press delete key...
>>>>> it clear the property field value and it should display (none) as
>>>>> usual...
>>>>>
>>>>> but nothing happens... since i assign a bitmap, i can not have anymore
>>>>> this property field value to (none). I can only assign another bitmap,
>>>>> but never clear the field :-(
>>>>>
>>>>> do you have an idea ?
>>>>>
>>>>> thx.
>>>>>
>>>>> Al.
>>>>>
>>>>> Carl Daniel [VC++ MVP] wrote:
>>>>>> --== Alain ==-- wrote:
>>>>>>> here is my code :
>>>>>>>
>>>>>>> #pragma region public Property : ImageSortAscendant
>>>>>>> // Allow user to select the image which will be displayed for column
>>>>>>> sorted ascendantly
>>>>>>>
>>>>>>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>>>>>>> property Bitmap^ ImageSortAscendant
>>>>>>> {
>>>>>>>  Bitmap^ get()
>>>>>>>  {
>>>>>>>   return m_ImageSortA;
>>>>>>>  }
>>>>>>>  void set(System::Drawing::Bitmap^ value)
>>>>>>>  {
>>>>>>>   m_ImageSortA = value;
>>>>>>>  }
>>>>>>> }
>>>>>>> #pragma endregion
>>>>>>>
>>>>>>> but when i try to compile, i have the following error :
>>>>>>> ..\RAF_ListView.h(177) : error C3115:
>>>>>>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute
>>>>>>> is
>>>>>>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>>>>>>
>>>>>>> how could it be possible ?
>>>>>> It's not necessary.  If you simply don't assign a value to the
>>>>>> property (or the private field that backs it up), then it WILL be
>>>>>> null.
>>>>>>
>>>>>> The DefaultProperty attribute is applied to a class and names the
>>>>>> default property of the class.  It does not provide a default value
>>>>>> for a property, which is apparently what you're trying to do.
>>>>>>
>>>>>> -cd
>>>>>>
>>
Author
27 Oct 2006 6:38 AM
--== Alain ==--
Thanks for information but after your previous post, i got it ;-)

however, i would like to understand something.
It seems that everything is written with CLI managed v1, while i use v2.
therefore, as i do not want to use v1, i do not have /clr:OldSyntax as
compiler option.

I tried to migrate the code from v1 to v2 of CLI managed, but without
success. I still have the same issue. I can not clear my property field
value by pressing DELETE or BACKSPACE keys.

Something must be wrong in my code :-( or i miss the point...

Al.

Lloyd Dupont wrote:
Show quote
> Google: Must have .NET developer tools
> => http://msdn.microsoft.com/msdnmag/issues/04/07/MustHaveTools/
>
> Google: Reflector .NET
> => http://www.aisto.com/roeder/dotnet/
>
> Reflector is the tool which will give you the source code from an MSIL.
>
>
> "--== Alain ==--" <nospam@noemail.com> wrote in message
> news:urdB96S%23GHA.924@TK2MSFTNGP03.phx.gbl...
>> i tried but it does not work as expected :-(
>> when i see the code you wrote, it seems that an event is also added.
>> is it like that for all properties ? because i've not seen it till now.
>>
>> moreover, where did you find the code below ? in help ?
>> i did not find it..
>>
>> thx.
>> Al.
>>
>> Lloyd Dupont wrote:
>>> Well why don't you try the "DefaultValueAttribute" as I told you?
>>> I think it's exactky what you need!
>>>
>>>
>>> Anyway, FYI, here is what reflector says about Control.BackgroundImage:
>>> [System::ComponentModel::DefaultValue(*static_cast<__box
>>> System::String*>(0)), System::ComponentModel::Localizable(true),
>>> System::Windows::Forms::SRDescription(S"ControlBackgroundImageDescr"),
>>> System::Windows::Forms::SRCategory(S"CatAppearance")]
>>> public: __property virtual System::Drawing::Image __gc*
>>> get_BackgroundImage()
>>> {
>>>       return *static_cast<__box
>>> System::Drawing::Image*>(this->Properties->GetObject(System::Windows::Forms::Control::PropBackgroundImage));
>>> }public: __property virtual void __gc*
>>> set_BackgroundImage(System::Drawing::Image __gc* value)
>>> {
>>>       if (this->BackgroundImage != value)
>>>       {
>>>
>>> this->Properties->SetObject(System::Windows::Forms::Control::PropBackgroundImage,
>>> value);
>>>             this->OnBackgroundImageChanged(System::EventArgs::Empty);
>>>       }
>>> }
>>>
>>>
>>>
>>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>>> news:eNWBvaS%23GHA.4268@TK2MSFTNGP02.phx.gbl...
>>>> My problem is not to assign a value to this property. I think it it how
>>>> to clear it, if user press DELETE, BACKSPACE keys when this property has
>>>> the focus in the property editor.
>>>>
>>>> For example if i assign a bitmap to form thanks backgroundimage
>>>> property, just by pressing delete, this property is cleared.
>>>> i would like to have the same for my property..
>>>>
>>>> that's all
>>>>
>>>> Al.
>>>>
>>>> Lloyd Dupont wrote:
>>>>> You could try the
>>>>> DefaultValueAttribute instead...
>>>>>
>>>>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>>>>> news:esA26oM%23GHA.4428@TK2MSFTNGP04.phx.gbl...
>>>>>> Thanks Carl, but i went to this direction according to my other
>>>>>> issue...
>>>>>>
>>>>>> when i assigned a bitmap to this property, it's ok and everything
>>>>>> works.
>>>>>> However, once a bitmap is assigned, and i want to delete this
>>>>>> assignment, i usually use select the property value in property editor
>>>>>> and press delete key...
>>>>>> it clear the property field value and it should display (none) as
>>>>>> usual...
>>>>>>
>>>>>> but nothing happens... since i assign a bitmap, i can not have anymore
>>>>>> this property field value to (none). I can only assign another bitmap,
>>>>>> but never clear the field :-(
>>>>>>
>>>>>> do you have an idea ?
>>>>>>
>>>>>> thx.
>>>>>>
>>>>>> Al.
>>>>>>
>>>>>> Carl Daniel [VC++ MVP] wrote:
>>>>>>> --== Alain ==-- wrote:
>>>>>>>> here is my code :
>>>>>>>>
>>>>>>>> #pragma region public Property : ImageSortAscendant
>>>>>>>> // Allow user to select the image which will be displayed for column
>>>>>>>> sorted ascendantly
>>>>>>>>
>>>>>>>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>>>>>>>> property Bitmap^ ImageSortAscendant
>>>>>>>> {
>>>>>>>>  Bitmap^ get()
>>>>>>>>  {
>>>>>>>>   return m_ImageSortA;
>>>>>>>>  }
>>>>>>>>  void set(System::Drawing::Bitmap^ value)
>>>>>>>>  {
>>>>>>>>   m_ImageSortA = value;
>>>>>>>>  }
>>>>>>>> }
>>>>>>>> #pragma endregion
>>>>>>>>
>>>>>>>> but when i try to compile, i have the following error :
>>>>>>>> ..\RAF_ListView.h(177) : error C3115:
>>>>>>>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute
>>>>>>>> is
>>>>>>>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>>>>>>>
>>>>>>>> how could it be possible ?
>>>>>>> It's not necessary.  If you simply don't assign a value to the
>>>>>>> property (or the private field that backs it up), then it WILL be
>>>>>>> null.
>>>>>>>
>>>>>>> The DefaultProperty attribute is applied to a class and names the
>>>>>>> default property of the class.  It does not provide a default value
>>>>>>> for a property, which is apparently what you're trying to do.
>>>>>>>
>>>>>>> -cd
>>>>>>>
>
Author
27 Oct 2006 11:20 PM
Lloyd Dupont
Do not worry about the syntax!
It might very well have been written in C# to start with, it's just
reflector which decompile in old MC++ syntax!

Glad you solved your problem.

Show quote
"--== Alain ==--" <nospam@noemail.com> wrote in message
news:ufTwVKZ%23GHA.3952@TK2MSFTNGP03.phx.gbl...
> Thanks for information but after your previous post, i got it ;-)
>
> however, i would like to understand something.
> It seems that everything is written with CLI managed v1, while i use v2.
> therefore, as i do not want to use v1, i do not have /clr:OldSyntax as
> compiler option.
>
> I tried to migrate the code from v1 to v2 of CLI managed, but without
> success. I still have the same issue. I can not clear my property field
> value by pressing DELETE or BACKSPACE keys.
>
> Something must be wrong in my code :-( or i miss the point...
>
> Al.
>
> Lloyd Dupont wrote:
>> Google: Must have .NET developer tools
>> => http://msdn.microsoft.com/msdnmag/issues/04/07/MustHaveTools/
>>
>> Google: Reflector .NET
>> => http://www.aisto.com/roeder/dotnet/
>>
>> Reflector is the tool which will give you the source code from an MSIL.
>>
>>
>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>> news:urdB96S%23GHA.924@TK2MSFTNGP03.phx.gbl...
>>> i tried but it does not work as expected :-(
>>> when i see the code you wrote, it seems that an event is also added.
>>> is it like that for all properties ? because i've not seen it till now.
>>>
>>> moreover, where did you find the code below ? in help ?
>>> i did not find it..
>>>
>>> thx.
>>> Al.
>>>
>>> Lloyd Dupont wrote:
>>>> Well why don't you try the "DefaultValueAttribute" as I told you?
>>>> I think it's exactky what you need!
>>>>
>>>>
>>>> Anyway, FYI, here is what reflector says about Control.BackgroundImage:
>>>> [System::ComponentModel::DefaultValue(*static_cast<__box
>>>> System::String*>(0)), System::ComponentModel::Localizable(true),
>>>> System::Windows::Forms::SRDescription(S"ControlBackgroundImageDescr"),
>>>> System::Windows::Forms::SRCategory(S"CatAppearance")]
>>>> public: __property virtual System::Drawing::Image __gc*
>>>> get_BackgroundImage()
>>>> {
>>>>       return *static_cast<__box
>>>> System::Drawing::Image*>(this->Properties->GetObject(System::Windows::Forms::Control::PropBackgroundImage));
>>>> }public: __property virtual void __gc*
>>>> set_BackgroundImage(System::Drawing::Image __gc* value)
>>>> {
>>>>       if (this->BackgroundImage != value)
>>>>       {
>>>>
>>>> this->Properties->SetObject(System::Windows::Forms::Control::PropBackgroundImage,
>>>> value);
>>>>             this->OnBackgroundImageChanged(System::EventArgs::Empty);
>>>>       }
>>>> }
>>>>
>>>>
>>>>
>>>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>>>> news:eNWBvaS%23GHA.4268@TK2MSFTNGP02.phx.gbl...
>>>>> My problem is not to assign a value to this property. I think it it
>>>>> how to clear it, if user press DELETE, BACKSPACE keys when this
>>>>> property has the focus in the property editor.
>>>>>
>>>>> For example if i assign a bitmap to form thanks backgroundimage
>>>>> property, just by pressing delete, this property is cleared.
>>>>> i would like to have the same for my property..
>>>>>
>>>>> that's all
>>>>>
>>>>> Al.
>>>>>
>>>>> Lloyd Dupont wrote:
>>>>>> You could try the
>>>>>> DefaultValueAttribute instead...
>>>>>>
>>>>>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>>>>>> news:esA26oM%23GHA.4428@TK2MSFTNGP04.phx.gbl...
>>>>>>> Thanks Carl, but i went to this direction according to my other
>>>>>>> issue...
>>>>>>>
>>>>>>> when i assigned a bitmap to this property, it's ok and everything
>>>>>>> works.
>>>>>>> However, once a bitmap is assigned, and i want to delete this
>>>>>>> assignment, i usually use select the property value in property
>>>>>>> editor and press delete key...
>>>>>>> it clear the property field value and it should display (none) as
>>>>>>> usual...
>>>>>>>
>>>>>>> but nothing happens... since i assign a bitmap, i can not have
>>>>>>> anymore this property field value to (none). I can only assign
>>>>>>> another bitmap, but never clear the field :-(
>>>>>>>
>>>>>>> do you have an idea ?
>>>>>>>
>>>>>>> thx.
>>>>>>>
>>>>>>> Al.
>>>>>>>
>>>>>>> Carl Daniel [VC++ MVP] wrote:
>>>>>>>> --== Alain ==-- wrote:
>>>>>>>>> here is my code :
>>>>>>>>>
>>>>>>>>> #pragma region public Property : ImageSortAscendant
>>>>>>>>> // Allow user to select the image which will be displayed for
>>>>>>>>> column
>>>>>>>>> sorted ascendantly
>>>>>>>>>
>>>>>>>>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>>>>>>>>> property Bitmap^ ImageSortAscendant
>>>>>>>>> {
>>>>>>>>>  Bitmap^ get()
>>>>>>>>>  {
>>>>>>>>>   return m_ImageSortA;
>>>>>>>>>  }
>>>>>>>>>  void set(System::Drawing::Bitmap^ value)
>>>>>>>>>  {
>>>>>>>>>   m_ImageSortA = value;
>>>>>>>>>  }
>>>>>>>>> }
>>>>>>>>> #pragma endregion
>>>>>>>>>
>>>>>>>>> but when i try to compile, i have the following error :
>>>>>>>>> ..\RAF_ListView.h(177) : error C3115:
>>>>>>>>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute
>>>>>>>>> is
>>>>>>>>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>>>>>>>>
>>>>>>>>> how could it be possible ?
>>>>>>>> It's not necessary.  If you simply don't assign a value to the
>>>>>>>> property (or the private field that backs it up), then it WILL be
>>>>>>>> null.
>>>>>>>>
>>>>>>>> The DefaultProperty attribute is applied to a class and names the
>>>>>>>> default property of the class.  It does not provide a default value
>>>>>>>> for a property, which is apparently what you're trying to do.
>>>>>>>>
>>>>>>>> -cd
>>>>>>>>
>>
Author
27 Oct 2006 6:32 PM
--== Alain ==--
I've found where was the problem... at least :-)

i should cast my default value to String as follow :
System::ComponentModel::DefaultValueAttribute(static_cast
<System::String^> (nullptr))]

and not to an image^ ... like that it allow DELETE and BACKSPACE keys to
be used.

thx a lot Lloyd !

Alain



Lloyd Dupont wrote:
Show quote
> Google: Must have .NET developer tools
> => http://msdn.microsoft.com/msdnmag/issues/04/07/MustHaveTools/
>
> Google: Reflector .NET
> => http://www.aisto.com/roeder/dotnet/
>
> Reflector is the tool which will give you the source code from an MSIL.
>
>
> "--== Alain ==--" <nospam@noemail.com> wrote in message
> news:urdB96S%23GHA.924@TK2MSFTNGP03.phx.gbl...
>> i tried but it does not work as expected :-(
>> when i see the code you wrote, it seems that an event is also added.
>> is it like that for all properties ? because i've not seen it till now.
>>
>> moreover, where did you find the code below ? in help ?
>> i did not find it..
>>
>> thx.
>> Al.
>>
>> Lloyd Dupont wrote:
>>> Well why don't you try the "DefaultValueAttribute" as I told you?
>>> I think it's exactky what you need!
>>>
>>>
>>> Anyway, FYI, here is what reflector says about Control.BackgroundImage:
>>> [System::ComponentModel::DefaultValue(*static_cast<__box
>>> System::String*>(0)), System::ComponentModel::Localizable(true),
>>> System::Windows::Forms::SRDescription(S"ControlBackgroundImageDescr"),
>>> System::Windows::Forms::SRCategory(S"CatAppearance")]
>>> public: __property virtual System::Drawing::Image __gc*
>>> get_BackgroundImage()
>>> {
>>>       return *static_cast<__box
>>> System::Drawing::Image*>(this->Properties->GetObject(System::Windows::Forms::Control::PropBackgroundImage));
>>> }public: __property virtual void __gc*
>>> set_BackgroundImage(System::Drawing::Image __gc* value)
>>> {
>>>       if (this->BackgroundImage != value)
>>>       {
>>>
>>> this->Properties->SetObject(System::Windows::Forms::Control::PropBackgroundImage,
>>> value);
>>>             this->OnBackgroundImageChanged(System::EventArgs::Empty);
>>>       }
>>> }
>>>
>>>
>>>
>>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>>> news:eNWBvaS%23GHA.4268@TK2MSFTNGP02.phx.gbl...
>>>> My problem is not to assign a value to this property. I think it it how
>>>> to clear it, if user press DELETE, BACKSPACE keys when this property has
>>>> the focus in the property editor.
>>>>
>>>> For example if i assign a bitmap to form thanks backgroundimage
>>>> property, just by pressing delete, this property is cleared.
>>>> i would like to have the same for my property..
>>>>
>>>> that's all
>>>>
>>>> Al.
>>>>
>>>> Lloyd Dupont wrote:
>>>>> You could try the
>>>>> DefaultValueAttribute instead...
>>>>>
>>>>> "--== Alain ==--" <nospam@noemail.com> wrote in message
>>>>> news:esA26oM%23GHA.4428@TK2MSFTNGP04.phx.gbl...
>>>>>> Thanks Carl, but i went to this direction according to my other
>>>>>> issue...
>>>>>>
>>>>>> when i assigned a bitmap to this property, it's ok and everything
>>>>>> works.
>>>>>> However, once a bitmap is assigned, and i want to delete this
>>>>>> assignment, i usually use select the property value in property editor
>>>>>> and press delete key...
>>>>>> it clear the property field value and it should display (none) as
>>>>>> usual...
>>>>>>
>>>>>> but nothing happens... since i assign a bitmap, i can not have anymore
>>>>>> this property field value to (none). I can only assign another bitmap,
>>>>>> but never clear the field :-(
>>>>>>
>>>>>> do you have an idea ?
>>>>>>
>>>>>> thx.
>>>>>>
>>>>>> Al.
>>>>>>
>>>>>> Carl Daniel [VC++ MVP] wrote:
>>>>>>> --== Alain ==-- wrote:
>>>>>>>> here is my code :
>>>>>>>>
>>>>>>>> #pragma region public Property : ImageSortAscendant
>>>>>>>> // Allow user to select the image which will be displayed for column
>>>>>>>> sorted ascendantly
>>>>>>>>
>>>>>>>> [System::ComponentModel::DefaultPropertyAttribute (nullptr)]
>>>>>>>> property Bitmap^ ImageSortAscendant
>>>>>>>> {
>>>>>>>>  Bitmap^ get()
>>>>>>>>  {
>>>>>>>>   return m_ImageSortA;
>>>>>>>>  }
>>>>>>>>  void set(System::Drawing::Bitmap^ value)
>>>>>>>>  {
>>>>>>>>   m_ImageSortA = value;
>>>>>>>>  }
>>>>>>>> }
>>>>>>>> #pragma endregion
>>>>>>>>
>>>>>>>> but when i try to compile, i have the following error :
>>>>>>>> ..\RAF_ListView.h(177) : error C3115:
>>>>>>>> 'System::ComponentModel::DefaultPropertyAttribute': this attribute
>>>>>>>> is
>>>>>>>> not allowed on 'RAF_ListView::AR_ListView::ImageSortAscendant'
>>>>>>>>
>>>>>>>> how could it be possible ?
>>>>>>> It's not necessary.  If you simply don't assign a value to the
>>>>>>> property (or the private field that backs it up), then it WILL be
>>>>>>> null.
>>>>>>>
>>>>>>> The DefaultProperty attribute is applied to a class and names the
>>>>>>> default property of the class.  It does not provide a default value
>>>>>>> for a property, which is apparently what you're trying to do.
>>>>>>>
>>>>>>> -cd
>>>>>>>
>

AddThis Social Bookmark Button