Jag har två formulär, det första innehåller en listview och jag vill lägga till listviewitems från det andra formuläret. Problemet är att jag från det andra formuläret inte kommer åt listviewn i första formuläret. Den lösning jag har kommit på är att skapa en global pekare till listviewn i en modul som jag sedan använder när jag ska lägga till items. Men den lösningen verkar vara lite "ful". Finns det något enklare, bättre och snyggare sätt att komma åt objekt i andra formulär? Hej Christian, Allternativt skicka med pekaren till b i instansieringen och endast ha listvyn (istället för hela formuläret a) som global variabel i b. Christans tanke är naturligtvis helt korrekt, dvs att man inte skall ge B mer än vad B behöver. Detta kan drivas ytterligare genom att skicka in själva kollektionen istället för hela kontrollen, eller varför inte bara en IList. Vill man gå till ytterligheter skickar man in en delegate som pekar på kollektionens Add-metod :) Tack för era förslag på lösningar. Jag ska prova de och se vilken jag fastnar för.Komma åt objekt i andra formulär
Sv: Komma åt objekt i andra formulär
Det finns många sätt att lösa detta på men jag kan hålla med om att det inte *verkar* vara den snyggaste lösningen att använda en global pekare. Följande *förslag* är kanske inte det absolut snyggaste men iallafall mindre fult :). Jag utgår från att du öppnar formulär B från formulär A (och gissningsvis modalt). I sådana fall kan du skapa en publik (read-only) property på A som exponerar listvyn. Ändra sedan Bs konstruktor så att den tar A som ett argument. Genom att skicka in A till B får B tillgång till listvyn i A via As nya property.
HthSv:Komma åt objekt i andra formulär
Typ:
<code>
Dim lv as listview
Private sub new()
end sub
Public sub new(lv as listview)
me.lv=lv
end sub
</code>Sv: Komma åt objekt i andra formulär
Sv:Komma åt objekt i andra formulär