Oppure

Loading
13/05/08 17:53
gabryk
In un progetto MDI ho un main form che funge da contenitore per vari altri form (come qualsiasi programma windows). Devo visualizzare in basso una specie di statusbar, ma diverso da statusbar, picturebox o qualsiasi altro controllo standard, perchè altrimenti i form trascinati oltre il bordo inferiore vengono coperti ("finiscono sotto al controllo";). Pensandoci un po' ho optato per far aprire un form (con proprietà borderstyle=none) insieme al main usando questo codice:

    Load frmImage
    frmImage.Height = 1000
    frmImage.Width = fMainForm.ScaleWidth
    frmImage.Top = fMainForm.ScaleHeight - 1000
    frmImage.Left = fMainForm.ScaleWidth - frmImage.Width
    frmImage.Show


Così si apre il form e assume le dimensioni corrette, viene inoltre posizionato proprio come se fosse una statusbar e ottengo che gli altri form non gli finiscono sotto.
Detto questo il mio problema è: quando sposto un form oltre il limite visibile del main appaiono le classiche scrollbar, il problema è che se clicco su una scrollbar il mio form statusbar perde la posizione che gli ho impostato. Dovrei dire da qualche parte nel main di reimpostare i parametri di quel form quando si clicca su una scrollbar... ma come faccio? Ho provato con resize ma non c'entra niente...
aaa
13/05/08 18:09
antometal
puoi mettere nel form statusbar un timer con intervallo basso tipo 20 nel quale imposti le variabilii top e left del form
aaa
13/05/08 18:12
gabryk
E' l'idea che mi è venuta subito dopo aver scritto qui, c'è però l'inconveniente che in questo modo mi resta il focus sul form statusbar e per spostare gli altri form devi cliccare 1 volta per dargli il focus e di nuovo (tenendo premuto) per spostarli. Se avessero il focus come sarebbe giusto basterebbe premere senza rilasciare e trascinarli... suggerimenti per questo?
aaa
13/05/08 19:19
antometal
il focus nn rimane sul form satus quando viene eseguito il codice del timer
prova a vedere usando un timer poi dimmi
aaa
13/05/08 20:39
gabryk
Già provato, succede quello che dicevo prima
aaa