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?