|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Nov 2009
Messaggi: 15
|
[VB.NET] Picture in un form MDI
Buongiorno a tutti quanti,
dovrei inserire un immagine come sfondo di un form settato come MDI CONTAINER. Ho creato un picturebox e la metto come sfondo, il problema è che quanto apro un form figlio l'immagine mi rimane in primo piano sopra il form aperto. Ho provato con SendToBack ma così l'immagine sparisce del tutto. Ho provato a mettere l'immagine con sfondo del form, ma essendo mdi container non me la visualizza e mi fa vedere solo il classico sfondo grigio. Vi prego aiutatemi. Vi ringrazio saluti Francesco |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Strano. Sicuro di aver usato il codice corretto ?
Se Form1 è di avvio del Progetto e di tipo MDI, e Form2 è child di Form1 : > Immagine sfondo su avvio di Form1 : Codice:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.BackgroundImage = Image.FromFile(Application.StartupPath & "\sfondo.bmp") Me.BackgroundImageLayout = ImageLayout.Center End Sub Codice:
Dim Frm2 As New Form2 Frm2.MdiParent = Me Frm2.Show() |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Nov 2009
Messaggi: 15
|
Buongiorno, grazie per la celere risposta.
Caricando l'immagine tramite codice, come hai detto tu, va tutto bene. Grazie. Quando invece carico l'immagine nelle proprietà del form, l'immagine non si vede proprio. E invece inserendo la picturebox questa mi rimane sempre in primo piano_!! BAH cmq adesso ho risolto. Grazie tante!! ![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Personalmente non trovo consigliabile mettere controlli ( pulsanti, picturebox, ecc... ) direttamente sulla Form MDI, che uso solo come Form-container-principale dell'applicazione. Buona cosa è invece mettere il menu principale dell'applicazione su Form MDI. Un'alternativa valida è quella di inserire una "Form di sfondo", senza bordi nè controlbox, che copre tutta la client area della MDI. A questa Form di sfondo si possono aggiungere tutti i controlli e le immagini che si desiderano, e staranno in secondo piano rispetto alle successive Form figlie : Perciò sul Form Load della MDI avremo : Codice:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim FrmSfondo As New Form_Sfondo FrmSfondo.BackgroundImage = Image.FromFile(Application.StartupPath & "\sfondo.bmp") FrmSfondo.BackgroundImageLayout = ImageLayout.Center FrmSfondo.MdiParent = Me FrmSfondo.FormBorderStyle = Windows.Forms.FormBorderStyle.None FrmSfondo.Width = Me.ClientSize.Width - (SystemInformation.Border3DSize.Width * 2) FrmSfondo.Height = Me.ClientSize.Height - (SystemInformation.Border3DSize.Height * 2) FrmSfondo.Show() End Sub Codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Frm2 As New Form2 Frm2.MdiParent = Me.MdiParent Frm2.Show() End Sub ![]() |
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Nov 2009
Messaggi: 15
|
La secondo è una soluzione un po laboriosa. Cmq ho risolto adattandomi il logo con Photoshop e l'ho messo come sfondo come dicevi prima, ed il risultato pè perfetto!!
Grazie tante ancora. p.s. Il forum è davvero ottimo, ogni volta riuscite a trovare la soluzione!! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2690
|
Salve ragazzi,
riporto su questo vecchio thread ma ho un problema simile che vi espongo. Ho un form MDI (Me) che successivamente al suo carimento lancia un form (frmMain) al suo interno. Nel form MDI ho inserito una PictureBox che nell'evento Load del form MDI mi carica una immagine. Il tutto avviene perfettamente ma il secondo form non viene caricato. Se elimino le righe di codice relative il caricamento dell'immagine nella PictureBox il secondo form viene caricato: Con caricamento immagine: ![]() Come dovrebbe essere: ![]() Senza caricamento immagine: ![]() Questo il codice: Codice:
Private Sub MDIfrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim FileName As String FileName = Application.StartupPath & "\Logo1.bmp" picLogo1.Visible = False ' Load the picture into a Bitmap. Dim MyBitmap As New Bitmap(FileName) Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None Me.WindowState = FormWindowState.Maximized picLogo1.Height = Me.Height picLogo1.Width = Me.Width ' Display the results. picLogo1.Image = MyBitmap picLogo1.SizeMode = PictureBoxSizeMode.StretchImage picLogo1.Visible = True frmMain.MdiParent = Me frmMain.Show() End Sub Codice:
picLogo1.Image = MyBitmap picLogo1.SizeMode = PictureBoxSizeMode.StretchImage picLogo1.Visible = True
__________________
Unisciti a noi: ![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:01.