[Mono-winforms-list] NullReferenceException calling SWF.Control.set_AccessibleRole

Nick Thorpe nt at zrho.com
Wed Aug 30 13:50:32 EDT 2006


I did some digging through the Infragistics code that I mentioned in my
first e-mail and I do not see any class that overrides AccessibleObject.
This UltraToolBarsDockArea extends and abstract called UltraControlBase,
which itself extends SWF.Control. Neither of the Ultra classes overrides the
Accessibility methods.

The InitControlStyles method that results in the NullRef exception is more
or less doing this:

      if (!base.DesignMode)
      {
            if (this.isPopupArea)
            {
                  base.AccessibleRole = AccessibleRole.MenuPopup;
            }
            else
            {
                  base.AccessibleRole = AccessibleRole.Grouping;
            }
      }

In .NET 1.1 that should go to:

public AccessibleRole AccessibleRole
{
      set
      {
            if (!Enum.IsDefined(typeof(AccessibleRole), value))
            {
                  throw new InvalidEnumArgumentException("value", (int)
value, typeof(AccessibleRole));
            }
            this.Properties.SetInteger(Control.PropAccessibleRole, (int)
value);
      }
}

But in MWF.Control, as I'm sure you know, it's doing:

public AccessibleRole AccessibleRole {
            set {
                AccessibilityObject.role=value;
            }

That doesn't look like a problem unless the AccessibleObject is for some
reason not getting initialized before the set.

I also tried running this on Mono 1.1.6 and it basically gave me the same
exception with the addition of:

in (wrapper stfld)
System.Object:__stfld_wrapper_System.Int32(object,intptr,intptr,intptr,int)

I don't know enough about the Mono code to say whether that is meaningful,
although I do wonder if the AccessibleRole property has a problem with the
value.

If you have any thoughts on additional things I can look at or additional
data I can provide please let me know. At this point this appears to be an
incompatibility with Mono, but I certainly don't have enough evidence to say
there's a bug here.

Thanks,
Nick


On 8/28/06, Rafael Teixeira <monoman at gmail.com> wrote:
>
> Looking at our code, I would say that the only chance of happening a
> null reference error is if the control that UltraToolbarsDockArea is
> trying to set the AccessibleRole (presumbaly itself) redefines
> (overrides) the method:
>
>         protected virtual AccessibleObject CreateAccessibilityInstance() {
>                         return new Control.ControlAccessibleObject(this);
>         }
>
> With one that is not able to return a new AcessibleObject-compatible
> instance, for some other cause.
>
> Good luck,
>
> On 8/24/06, Nick Thorpe <nt at zrho.com> wrote:
> > Hi all,
> >
> > I'm trying to get a 3rd party GUI library (Infragistics NetAdvantage)
> > working with Mono 1.1.16.1. When I run our application it dies almost
> > instantly with this exception:
> >
> >  Unhandled Exception: System.NullReferenceException: Object reference
> not
> > set to an instance of an object
> >   at System.Windows.Forms.Control.set_AccessibleRole
> > (AccessibleRole value) [0x00000]
> >   at
> >
> Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea.InitControlStyles
> > () [0x00000]
> >   at
> > Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea..ctor
> > () [0x00000]
> >   at (wrapper remoting-invoke-with-check)
> > Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea:.ctor
> > ()
> >   at PSOMA.Form1.InitializeComponent () [0x00000]
> >   at PSOMA.Form1..ctor () [0x00000]
> >   at (wrapper remoting-invoke-with-check) PSOMA.Form1:.ctor ()
> >   at PSOMA.Form1.Main () [0x00000]
> >
> > I checked the CIL to see if the library was using something outside of
> .NET,
> > but it looks pretty standard and is seems to be failing at this call:
> >
> >   IL_0098:  call       instance void
> > [System.Windows.Forms
> ]System.Windows.Forms.Control::set_AccessibleRole(valuetype
> > [System.Windows.Forms]System.Windows.Forms.AccessibleRole)
> >
> > I don't know enough about SWF to say whether this is a bug, or if these
> > libraries are doing something unsupported. If anyone has any input on
> the
> > problem I'd appreciate it.
> >
> > Thanks,
> > Nick
> >
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-winforms-list/attachments/20060830/83e8d604/attachment.html 


More information about the Mono-winforms-list mailing list