Toon posts:

[C#] "Cannot add a top level control to a control" *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

ik heb het volgende probleem. Ik heb twee klassen gemaakt in een formuliertje ik heb dit met visual studio gedaan en wil graag weten wat deze error inhoud.

error:
Cannot add a top level control to a control.


Hieronder zal ik mijn code posten

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Form1 : System.Windows.Forms.Form
{
                ..
                ..
                [STAThread]
                static void Main() 
    {
        Application.Run(new Form1());
    }

    private void Form1_Load(object sender, System.EventArgs e)
    {
        doButton testing = new doButton();
        this.Controls.Add(testing);
    }
}

public class doButton : System.Windows.Forms.Form
{
    public doButton()
    {
        Button bla = new Button();
    }
}

Mijn bedoeling is doormiddel van de class doButton een button te maken en die in mijn form te plaatsen.

Ik heb nu voor het voorbeeld een Button gebruikt maar uiteindelijk wil ik ipv een Button een TreeView opbouwen in een apparte class en die op mijn formulier plaatsen.
Deze TreeView moeten een harddisk browser worden (Zoiets als windowsverkenner). Deze code heb ik al gemaakt maar het is redelijk veel code en wil daar een aparte class van maken en die in een DLL plaatsen.

Maar ik kom dus niet verder omdat ik die toplevel error krijg.

Graag zou ik willen weten hoe ik dit probleem oplos. Als het niet op deze manier lukt zou ik graag willen horen als iemand een andere manier weet om dit voor elkaar te krijgen.

[ Voor 1% gewijzigd door gorgi_19 op 27-08-2004 19:04 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

Als je een Button wilt maken, waarom overerf je dan van een Form?

(En plaats code tussen [rml][ code]...[ /code][/] tags)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
.oisyn schreef op 27 augustus 2004 @ 19:04:
Als je een Button wilt maken, waarom overerf je dan van een Form?
MMMMM ok you got a point maar hoe dat ook is dat niet de oorzaak van mijn probleem.

Verwijderd

MMMMM ok you got a point maar hoe dat ook is dat niet de oorzaak van mijn probleem.
Ik denk het wel. Een form is namelijk een top-level control

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

Idd, je wilt een doButton toevoegen. En wat is een doButton? Juist, een Form, geen Button. Je Button bla = new Button(); in je doButton constructor heeft dan ook weinig nut; je declareert een locale variabele waaraan je een nieuwe Button toekent, maar je doet er niets mee (dus de aangemaakte Button wordt weer opgeruimd).

doButton is dan ook niet echt een nuttige naam voor een class; en class is niet iets dat iets uitvoert, een class representeert iets, een object. Een doButton suggereert niet een ding maar een actie, meer een naam voor een functie dus

[ Voor 27% gewijzigd door .oisyn op 27-08-2004 23:08 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • whoami
  • Registratie: December 2000
  • Laatst online: 23-05 16:52
Trouwens, je kan in C# ook op een makkelijke manier (user)controls maken. Dat doe je door in VS.NET te kiezen voor een 'user-control' project.

In jouw geval moet je dus inheriten van System.Windows.Forms.UserControl.

[ Voor 26% gewijzigd door whoami op 28-08-2004 09:00 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
SUPER

Bedankt voor de hulp ik denk dat ik er nu wel uit kom verder (wat dit betreft).

Voor degenen die nog interesse hebben in een walkthrough/tutorial over User Controls check

http://msdn.microsoft.com...sercontrolwithvisualc.asp
Pagina: 1