Toolstrip Exception - bad .NET?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mike

    Toolstrip Exception - bad .NET?

    I have a program that is crashing on some machines (at a client of
    ours). I have determined that it goes down on this line of code:

    ToolStrip x = new ToolStrip();

    I created a simple test app that only performs this one line of code.
    It throws an exception so I know the problem is not caused by
    something in my code. It seems like there is a problem with .NET. We
    have tried uninstalling and reinstalling .NET 2, but it doesn't help.

    Please, please, please, does anybody have any ideas? The following is
    the exception info from my test app...

    "Parameter is not valid"

    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.Argument Exception: Parameter is not valid.
    at System.Drawing. Font.GetHeight( Graphics graphics)
    at System.Drawing. Font.get_SizeIn Points()
    at System.Drawing. SystemFonts.Fon tInPoints(Font font)
    at System.Drawing. SystemFonts.get _MenuFont()
    at System.Windows. Forms.ToolStrip Manager.get_Def aultFont()
    at System.Windows. Forms.ToolStrip Item.get_Font()
    at
    System.Windows. Forms.ToolStrip ItemInternalLay out.CommonLayou tOptions()
    at
    System.Windows. Forms.ToolStrip DropDownButton. ToolStripDropDo wnButtonInterna lLayout.CommonL ayoutOptions()
    at System.Windows. Forms.ToolStrip ItemInternalLay out.GetLayoutDa ta()
    at System.Windows. Forms.ToolStrip ItemInternalLay out.PerformLayo ut()
    at System.Windows. Forms.ToolStrip DropDownItem.On BoundsChanged()
    at System.Windows. Forms.ToolStrip Item.SetBounds( Rectangle bounds)
    at System.Windows. Forms.ToolStrip OverflowButton. SetBounds(Recta ngle
    bounds)
    at System.Windows. Forms.ToolStrip Item.set_Size(S ize value)
    at System.Windows. Forms.ToolStrip .get_OverflowBu tton()
    at
    System.Windows. Forms.ToolStrip SplitStackLayou t.get_OverflowB uttonSize()
    at
    System.Windows. Forms.ToolStrip SplitStackLayou t.LayoutHorizon tal()
    at
    System.Windows. Forms.ToolStrip SplitStackLayou t.LayoutCore(IA rrangedElement
    container, LayoutEventArgs layoutEventArgs )
    at System.Windows. Forms.Layout.La youtEngine.Layo ut(Object
    container, LayoutEventArgs layoutEventArgs )
    at System.Windows. Forms.Control.O nLayout(LayoutE ventArgs levent)
    at System.Windows. Forms.Scrollabl eControl.OnLayo ut(LayoutEventA rgs
    levent)
    at System.Windows. Forms.ToolStrip .OnLayout(Layou tEventArgs e)
    at System.Windows. Forms.Control.P erformLayout(La youtEventArgs args)
    at System.Windows. Forms.Control.P erformLayout()
    at System.Windows. Forms.Control.R esumeLayout(Boo lean performLayout)
    at System.Windows. Forms.ToolStrip ..ctor()
    at WindowsApplicat ion2.Form1.butt on1_Click(Objec t sender, EventArgs
    e)
    at System.Windows. Forms.Control.O nClick(EventArg s e)
    at System.Windows. Forms.Button.On Click(EventArgs e)
    at System.Windows. Forms.Button.On MouseUp(MouseEv entArgs mevent)
    at System.Windows. Forms.Control.W mMouseUp(Messag e& m, MouseButtons
    button, Int32 clicks)
    at System.Windows. Forms.Control.W ndProc(Message& m)
    at System.Windows. Forms.ButtonBas e.WndProc(Messa ge& m)
    at System.Windows. Forms.Button.Wn dProc(Message& m)
    at
    System.Windows. Forms.Control.C ontrolNativeWin dow.OnMessage(M essage& m)
    at
    System.Windows. Forms.Control.C ontrolNativeWin dow.WndProc(Mes sage& m)
    at System.Windows. Forms.NativeWin dow.Callback(In tPtr hWnd, Int32
    msg, IntPtr wparam, IntPtr lparam)


    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    WindowsApplicat ion2
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/NextGen/WindowsApplicat ion2.exe
    ----------------------------------------
    System.Windows. Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows. Forms/2.0.0.0__b77a5c 561934e089/System.Windows. Forms.dll
    ----------------------------------------
    System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c 561934e089/System.dll
    ----------------------------------------
    System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.832 (QFE.050727-8300)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f 7f11d50a3a/System.Drawing. dll
    ----------------------------------------

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config ) must have the
    jitDebugging value set in the system.windows. forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    <configuratio n>
    <system.windows .forms jitDebugging="t rue" />

  • Jon Skeet [C# MVP]

    #2
    Re: Toolstrip Exception - bad .NET?

    On Oct 9, 1:05 pm, Mike <MLM...@hotmail .comwrote:
    I have a program that is crashing on some machines (at a client of
    ours). I have determined that it goes down on this line of code:
    >
    ToolStrip x = new ToolStrip();
    >
    I created a simple test app that only performs this one line of code.
    Well, it looks like this is happening within a button click, which
    suggests that it performs more than that one line of code.

    Could you post a short but complete program demonstrating the problem?
    See http://pobox.com/~skeet/csharp/complete.html for more details.

    Jon

    Comment

    • Jon Skeet [C# MVP]

      #3
      Re: Toolstrip Exception - bad .NET?

      Mike <MLM450@hotmail .comwrote:
      Thanks for the quick response. You are correct. What I created was a
      form application with a single button. The handler for the button
      click only does the one line of code.
      >
      Since the time when I retrieved these exception details, I changed the
      app to make it simpler so I don't have that exact code. The new test
      app runs the bad line of code in the constructor within a try...catch
      and shows a message on the form based on the results. I get
      "succeeded" on my system, but "failed" on the client's system. Here is
      the new code...
      That code will always fail - it doesn't run the InitializeCompo nent
      code in the designer file.

      However, I wonder whether your client's machine doesn't have the
      appropriate font installed. On my box it's using "Segoe UI" as the font
      name - you might want to check whether that's installed on your
      client's machine.

      --
      Jon Skeet - <skeet@pobox.co m>
      http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
      If replying to the group, please do not mail me too

      Comment

      • Mike

        #4
        Re: Toolstrip Exception - bad .NET?

        Thanks for the reply. I'll check the font.

        BTW, I'm a little confused by your comment that this code will never
        work. It works on my machine. That code is straight from what dev
        studio gives me when I create a new windows app project.

        On Oct 9, 2:08 pm, Jon Skeet [C# MVP] <sk...@pobox.co mwrote:
        Mike <MLM...@hotmail .comwrote:
        Thanks for the quick response. You are correct. What I created was a
        form application with a single button. The handler for the button
        click only does the one line of code.
        >
        Since the time when I retrieved these exception details, I changed the
        app to make it simpler so I don't have that exact code. The new test
        app runs the bad line of code in the constructor within a try...catch
        and shows a message on the form based on the results. I get
        "succeeded" on my system, but "failed" on the client's system. Here is
        the new code...
        >
        That code will always fail - it doesn't run the InitializeCompo nent
        code in the designer file.
        >
        However, I wonder whether your client's machine doesn't have the
        appropriate font installed. On my box it's using "Segoe UI" as the font
        name - you might want to check whether that's installed on your
        client's machine.
        >
        --
        Jon Skeet - <sk...@pobox.co m>http://www.pobox.com/~skeet Blog:http://www.msmvps.com/jon.skeet
        If replying to the group, please do not mail me too

        Comment

        • Jon Skeet [C# MVP]

          #5
          Re: Toolstrip Exception - bad .NET?

          Mike <MLM450@hotmail .comwrote:
          Thanks for the reply. I'll check the font.
          >
          BTW, I'm a little confused by your comment that this code will never
          work. It works on my machine. That code is straight from what dev
          studio gives me when I create a new windows app project.
          No, it's not. Check the constructor. You got rid of the call to
          InitializeCompo nent - indeed, it will throw a NullReferenceEx ception
          because lblResults is still null.

          --
          Jon Skeet - <skeet@pobox.co m>
          http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
          If replying to the group, please do not mail me too

          Comment

          • Mike

            #6
            Re: Toolstrip Exception - bad .NET?

            My mistake. I thought you meant that the designer can't have the
            InitializeCompo nent function.

            The call is in my test app. I made a mistake when I copied the code
            that caused it to be omitted. The correct constructor follows...

            public Form1()
            {
            InitializeCompo nent();

            try
            {
            ToolStrip x = new ToolStrip();
            }
            catch (Exception)
            {
            lblResults.Text = "FAILED";
            return;
            }
            lblResults.Text = "SUCCEEDED" ;
            }


            On Oct 9, 5:58 pm, Jon Skeet [C# MVP] <sk...@pobox.co mwrote:
            Mike <MLM...@hotmail .comwrote:
            Thanks for the reply. I'll check the font.
            >
            BTW, I'm a little confused by your comment that this code will never
            work. It works on my machine. That code is straight from what dev
            studio gives me when I create a new windows app project.
            >
            No, it's not. Check the constructor. You got rid of the call to
            InitializeCompo nent - indeed, it will throw a NullReferenceEx ception
            because lblResults is still null.
            >
            --
            Jon Skeet - <sk...@pobox.co m>http://www.pobox.com/~skeet Blog:http://www.msmvps.com/jon.skeet
            If replying to the group, please do not mail me too

            Comment

            • Mike

              #7
              Re: Toolstrip Exception - bad .NET?

              Thanks Jon! I just heard back from our client that the font was the
              problem. Windows thought the font was installed because it was in the
              registry but it really was not there. Deleting the registry key
              allowed the font to reinstall and everything is OK now.

              On Oct 9, 1:08 pm, Jon Skeet [C# MVP] <sk...@pobox.co mwrote:
              Mike <MLM...@hotmail .comwrote:
              Thanks for the quick response. You are correct. What I created was a
              form application with a single button. The handler for the button
              click only does the one line of code.
              >
              Since the time when I retrieved these exception details, I changed the
              app to make it simpler so I don't have that exact code. The new test
              app runs the bad line of code in the constructor within a try...catch
              and shows a message on the form based on the results. I get
              "succeeded" on my system, but "failed" on the client's system. Here is
              the new code...
              >
              That code will always fail - it doesn't run the InitializeCompo nent
              code in the designer file.
              >
              However, I wonder whether your client's machine doesn't have the
              appropriate font installed. On my box it's using "Segoe UI" as the font
              name - you might want to check whether that's installed on your
              client's machine.
              >
              --
              Jon Skeet - <sk...@pobox.co m>http://www.pobox.com/~skeet Blog:http://www.msmvps.com/jon.skeet
              If replying to the group, please do not mail me too

              Comment

              Working...