is gelijk aan maar toch niet helemaal

Status
Niet open voor verdere reacties.

Spiderman

Gebruiker
Lid geworden
8 sep 2000
Berichten
866
Hoi Allemaal,

Ik weet het even niet meer.

Ik heb een usercontrol vol met labels en textboxen.
Nu wil ik een 2de control maken die gelijk is aan de eerste maar met 1 kleine aanpassing.

De eerste heeft als achtergrond kleur grijs, de 2de moet wit worden.

Als ik control2=control1 en dan bij control2.backcolor de kleur wit zet, word ook control1 wit.

Van de ene kan is dit logisch want = betekend gelijk aan, dus als je de kleur van de ene wijzigt dan wijzig je de andere ook.

Is er een oplossing voor dit probleem?
 
Euuuhm,

Probeer is:

Dim NewControl As New Control1
Control2.BackColor = Color.White
Control2.Show

Dit werkt bij bijv. als je op een Button klikt. Dit wil je ook?
 
Laatst bewerkt:
Hoi Stoetel123,

Je antwoord snap ik, alleen dekt die niet helemaal de lading.
Probleem is dat control1 eerst een heleboel berekeningen moet doen, en zich daarna pas toont.
Daarna wil ik deze control printen, en daarvoor moet de achtergrond veranderen in wit.

Ik wil dus een tweede control tijdelijk aanmaken, die alle bekereningen al gedaan heeft (zie voorbeeld)
Code:
        Dim c1 As New UserControl1
        Dim c2 As UserControl1 = c1

        c1.Parent = Panel1
        c1.Show()

        c2.Parent = Panel2
        c2.Show()
        c2.Button1.BackColor = Color.Green

Dus i.p.v. 2x een New Usercontrol1 te maken, wil ik een 2de control hebben die gelijk is aan UserControl1. de achtergrond van het tweede control wit maken, printen en het control weer verwijderen.
 
Hoi Stoetel123,

Thnaks voor de youtube video. Dit komt me wel van pas.

Maar helaas lost dit niet mijn probleem op.

Ik wil niet dat 'c2' opnieuw alles moet berekenen. UserControl1 heeft alles al gedaan, ik wil dus gewoon een exacte kopie van UserControl1, zeg maar een soort van clone.
 
Je kan in de map van je applicatie c1 kopieëren, naam veranderen(de c1.vb, c1.designer.vb en c1.resx) en in je project "An existing item" toevoegen. Of je maakt een nieuw Form en kopiëert alles van je ene Form in je andere inclusief de code. Dan gewoon c2.show
 
Laatst bewerkt:
Hoi Stoetel123,

Dit lost mijn probleem ook niet op.

Mijn probleem is dus:
Ik heb een control 1. Dit control laat ik een heleboel berekeningen doen + een x aantal gegevens van een SQL server halen.
Nu wil ik 1 eigenschap van dit control eventjes veranderen zonder dat de gebruiker het ziet, namelijk de achtergrond kleur.

Dit kan ik maar op 1 manier, en dat is door een soort van clone.
Ik weet dat ik een kopie kan maken van het control binnen de applicatie en op die manier ook een tweede control te maken, maar dit control heeft dan niet alle berekenening gedaan.

Ik weet ook dat ik alles opnieuw kan laten berekenen. En er zullen misschien nog wel andere manieren zijn, die ongeveer hetzelfde bereiken.

Maar het moet toch mogelijk zijn om van control 1 een kopie te maken, en dan verder kunnen gaan op control 2 zonder dat control 1 daar last van heeft.
 
Control 2 hoeft inderdaad niets te doen.
Het enige wat ermee gedaan wordt, is achtergrond op wit en geprint worden.
 
Zeg, misschien is het een idee om de dingen die hij moet doen in een Thread te stoppen, starten en klaar. En dat de andere Form die Thread niet start?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan