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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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
>
>
_______________________________________________ Mono-winforms-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-winforms-list
