Eccezione su programma

di il
1 risposte

Eccezione su programma

Salve ho fatto una specie di mini cad seguendo un corso su youtub
però mi da un errore ma non capisco dove ho sbagliato:

   private void ScegliFigura_Cllick(object sender, EventArgs e)
        {
                                                                    // Con questo foreach evito il problema che se selezione un pulante rimanga selezionato.
            foreach (ToolStripButton bottone in toolStrip1.Items)   // il foreach cicla tutti gli elementi sensa bisogno di dirgli quanti siano. Dichiaro però la variabile dello stesso tipo di quella che deve ciclare in questo caso creo bottone
                bottone.Checked = false;
 
           (sender as ToolStripButton).Checked = true;              // questo è un cast di oggetti usa l'oggetto sender come se fosse di tipo toolstripbooton
                 switch ((sender as ToolStripButton).Text)
            {
                case "Punti":
                    figuraScelta = tipoFigure.Punti; 
                    break;

                case "Linee":
                    figuraScelta = tipoFigure.Linee;
                    break;

                case "Rettangoli":
                    figuraScelta = tipoFigure.Rettangolo;
                    break;

                case "Quadrati":
                    figuraScelta = tipoFigure.Quadrato;
                    break;

                case "Ellissi":
                    figuraScelta = tipoFigure.Ellisse;
                    break;

                default:
                    figuraScelta = tipoFigure.Punti;
                    break;

            }
        }

il punto esatto è questo -->
  (sender as ToolStripButton).Checked = true; 
l'errore che mi da è il seguente:

System.NullReferenceException was unhandled
  Message=Object reference not set to an instance of an object.
  Source=MiniCad
  StackTrace:
       at MiniCad.Form1.ScegliFigura_Cllick(Object sender, EventArgs e) in C:\Users\rossi.si.ELETTRIC80\Desktop\Projects\Projects\MiniCad\MiniCad\Form1.cs:line 95
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.Form.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at MiniCad.Program.Main() in C:\Users\rossi.si.ELETTRIC80\Desktop\Projects\Projects\MiniCad\MiniCad\Program.cs:line 19
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

Non riesco a sistemare il problema.

Qualcuno mi sa prebbe aiutare?

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte