sawMedlem sedan mars 20011 880 inlägg Jag försöker att bygga en analog klocka, och har hittat ett fint exempel på
http://code.msdn.microsoft.com/windowsdesktop/Analog-Clock-Control-0e8ffcab#content.
Detta fungerar bra som någonting att bygga på, men ett irriterande problem:
Så fort jag har gjort den minsta ändring I Form1 så får jag detta felet:
this.components = new System.ComponentModel.Container();
this.clockControl1 = new ClockControl.ClockControl();
//och jag får ändra till
this.clockControl1 = new ClockControl();
Finns det någonting jag kan göra för att undvika detta?
PS
Om jag inte ändrar någonting I Form1, så dyker inte felet upp!!!
Obs: Jag kan egentligen inte .net. Jag går efter vad jag kan hitta med en snabb googling och det kan hända att jag pratar ur arslet.
Jag tror det har att göra med huruvida du importerar klassen. Koden (dvs exempelkoden från MS) är lite klumpigt skriven i det att både namespacet och klassen båda heter ClockControl. Du kan göra imports ClockControl som importerar hela namespacet, eller imports ClockControl.ClockControl som bara importerar den klassen du vill komma åt.
Normalt sett hade du kunnat skriva new ClockControl.ClockControl() för att komma åt en viss klass i ett visst namespace. Eftersom ClockControl nu är importerat så hänvisar ClockControl till klassen och inte namespace, och alltså betyder ClockControl.ClockControl att du försöker komma åt en egenskap hos klassen ClockControl som heter ClockControl och du får ett fel.
För övrigt du berättande inte vilket felmeddelande du får...
sawMedlem sedan mars 20011 880 inlägg Hej och tack för ditt svar.
Felkod:
Error 1
The type name 'ClockControl' does not exist in the type 'ClockControl.ClockControl'
E:\C#\Project\ClockControl\ClockControl\Form1.Designer.cs
32 51 ClockControl
Jag tror ju att du har rätt, men vad tycker du att jag skall ändra, namespacen I usercontrollen?
Klassen ClockControl existerar uppenbart i scopet som din kod körs i, troligen för att du importerar den. Alltså tycker jag att du bör skapa objecktet med new ClockControl() istället för alternativet.
Alternativt kan du försöka att döpa om namespacet till ClockControlPackage eller något.
sawMedlem sedan mars 20011 880 inlägg Tack för dit svar, jag gjorde om det, ändrade namnet och nu fungerar det kanonbra.