Elikkäs olen tekemässä ohjelmaa jossa on monta lomaketta. Kaikkien lomakkeiden pitäisi olla päälomakkeen sisällä tyyliin esim ms excell jossa taulukot on kaikki päälomakkeen rajatulla alueella.
Ongelmana on toteutus. Miten muiden lomakkeiden siirtely ja sijoittelu saataisiin rajattua päälomakkeen rajojen sisään? Siis niin että alilomake voi kyllä mennä rajoista yli mutta se ei näy kuin päälomakkeen rajatulla alueella.
Osaisko joku auttaa?
Ongelmana on toteutus. Miten muiden lomakkeiden siirtely ja sijoittelu saataisiin rajattua päälomakkeen rajojen sisään? Siis niin että alilomake voi kyllä mennä rajoista yli mutta se ei näy kuin päälomakkeen rajatulla alueella.
Osaisko joku auttaa?
Vastaukset 3
Vanhimmat
..pitää käyttää MDI child formeja, tuossa vaikkapa microsoftin ohjeita VB:lle, C#:lle ja C :lle
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingwindowlistformdiform.asp
Googlettamalla aiheesta löytyytietoa vaikka kuinka.
Eli pitäis saada ohjelma toimimaan siten että lomake kaksi laittais tiedon ykkös formille jos se suljetaan jotta tiedettäisiin luodaanko napista kakkoslomake uudestaan. Ongelma on siinä ettei tieto jostain syystä lähde kakkosformilta.
Normaaleina lomakkeina kyllä toimii mutta samalla kun alkaa käyttämään tuota mdi-parentia niin ei enää jostain syystä toimikaan.
Form1:n koodia:
.
.
.
this.IsMdiContainer = true;
.
.
.
Seuraava pätkä on add napin alla.
this.f2 = new Form2();
this.f2.MdiParent = this;
this.f2.Show();
.
.
.
public void Form2Closed()
{
this.f2 = null;
}
#################
Form2:n koodia:
public Form1 parentform = null;
.
.
.
Elikkäs seuraavassa tapahtumankäsittelijässä tieto pitäisi lähteä ykkösformille, mutta tuleekin virheviesti:
An unhandled exception of type 'System.NullReferenceException' occured in Ohjelma.exe
private void Form2_Closing(object sender,System. ComponentModel.CancelEventArgs e)
{
this.parentform.Form2Closed();
}
Löysin tarkat ohjeet millainen tapahtumakäsittelijä lapsilomakkeelle pitää olla.