webForumDet fria alternativet

Irriterande problem.

.NET

4 svar · 1 147 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

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!!!

Medlem sedan aug. 20039 340 inlägg
#2

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...

Medlem sedan mars 20011 880 inlägg
#3

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?

Medlem sedan aug. 20039 340 inlägg
#4

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.

Medlem sedan mars 20011 880 inlägg
#5

Tack för dit svar, jag gjorde om det, ändrade namnet och nu fungerar det kanonbra.

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)