• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sr Inovação

colocar uma imagem como background no VB.net

13 mensagens neste tópico

Boa noite, tenho uma dúvida simples(acho eu...) sendo eu iniciante neste linguagem tenho estado a estudar através do Google foi então que resolvi fazer um programa para indo brincando e aprendendo ao mesmo tempo.

Este programa permite inserir um numero e saber se o mesmo é divisível por 3 , mas entretanto tive uma ideia,eu queria colocar uma imagem como background da form á escolha do utilizador(para isso é preciso ter um OpenFileDialog) para o utilizador poder escolher qual a imagem), mas não consigo colocar a imagem pretendida no background da form

Se me pudessem ajudar agradecia.

Obrigado  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E já tens o OpenFileDialog a ir buscar a imagem?

Se sim, podes perfeitamente criar uma instância da classe bitmap com o caminho para imagem como argumento no construtor.

Um dos overloads carrega a imagem a partir do caminho no disco.

Depois basta dar o bitmap à propriedade BackGroundImage do form.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ribeiro55, eu fiz um context menu com a opção Mudar/Escolher imagem, que quando clicado nele chama o OpenFileDialog, e segundo eu percebi num outro post do P@P que era preciso primeiro definir o tipo de ficheiro a seleccionar mas isso eu descubro com o fazer,mas o meu problema é que não colocar como eu pretendo. 

Isso do overloads podes me explicar melhor ou dar o tutorial para que entenda melhor esse conceito(parece-me que têm haver o carregamento de dados neste caso as imagens).

Obrigado desde já.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deve ser mais ou menos algo assim do genero que tu queres:

With OpenFileDialog1
            .CheckFileExists = True
            .ShowReadOnly = False
            .Filter = "All Files|*.*|Bitmap Files (*)|*.bmp;*.gif;*.jpg"
            .FilterIndex = 2
            If .ShowDialog = DialogResult.OK Then
                 PictureBox1.Image = Image.FromFile(.FileName)
            End If

tens de ir ao picturebox e dizeres nas propriedades sizemode=StretchImage
        End With

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, com a classe Image também vais dar ao mesmo.

Só tens de ignorar ali a parte da picturebox e utilizar a BackgroundImage do form.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim o ribeiro55 tem razao mais facil ainda,

 With OpenFileDialog1
            .CheckFileExists = True
            .ShowReadOnly = False
            .Filter = "All Files|*.*|Bitmap Files (*)|*.bmp;*.gif;*.jpg"
            .FilterIndex = 2
            If .ShowDialog = DialogResult.OK Then
                BackgroundImage = Image.FromFile(.FileName)
            End If
        End With

esta ai ja corrigido... ribeiro se me puderes dar uma dica no meu topic q tou a nora

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continua a faltar a referência ao form.

Form.BackgroundImage ou Me.BackgroundImage se for referência a ele próprio.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim podera corrijir se dessa forma... tens razao...

                Me.BackgroundImage = Image.FromFile(.FileName)

podes me dar uma dica no meu topico que tou uma beca atrapalhado com valuemembers e displaymembers

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Public Class frmForm1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MsgBox("Este programa permite saber se um  número é divisivel por 3")
    End Sub

    Private Sub btnresult_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnresult.Click
        If (txtn.Text) = "" Then
            MsgBox("Introduza um numero divisiel por 3")
        ElseIf Val(txtn.Text) Mod 3 = 0 Then
            MsgBox("Este numero é divisivel por 3")
        Else
            MsgBox("Este numero não é divisivel por 3")
        End If
    End Sub
    Private Sub BtnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancelar.Click
        Me.Close()
    End Sub

    Private Sub btnColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnColor.Click
        cdlgcolor.ShowDialog()
        If Windows.Forms.DialogResult.OK Then
            Me.BackColor = cdlgcolor.Color
        End If
    End Sub
    Private Sub Cmnuchange_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs)

    End Sub

    Private Sub MudarImagemDeFundoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MudarImagemdeFundoToolStripMenuItem.Click
        OdlgAbrirImagem.ShowDialog()
    End Sub

    Private Sub cmnupropriForm_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles cmnupropriForm.Opening
   End Sub

    Private Sub OdlgAbrirImagem_FileOk(ByVal sender As System.Object, ByVal e As      System.ComponentModel.CancelEventArgs) Handles OdlgAbrirImagem.FileOk
        With OdlgAbrirImagem
            .CheckFileExists = False
            .ShowReadOnly = True
            .Filter = "All Files|*.*|Bitmap Files (*)|*.bmp;*.gif;*.jpg"
            .FilterIndex = 2
            If .ShowDialog = Windows.Forms.DialogResult.OK Then
                BackgroundImage = Image.FromFile(.FileName) 
                 Me.BackgroundImage = Image.FromFile(.FileName)  
            End If       
        End With
    End Sub
End Class

Eu resolvi colocar aqui o código para uma melhor ajuda acerca do que eu pretendo

Agora quando eu escolho uma imagem,o programa volta a pedir a imagem ,mas penso que devia colocar a imagem devido a esta linha de código  Me.BackgroundImage = Image.FromFile(.FileName) diga-me se estou errado, desculpem se estou a ser chato 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta:

 

  Private Sub MudarImagemDeFundoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MudarImagemdeFundoToolStripMenuItem.Click
        With OdlgAbrirImagem
            .CheckFileExists = False
            .ShowReadOnly = True
            .Filter = "All Files|*.*|Bitmap Files (*)|*.bmp;*.gif;*.jpg"
            .FilterIndex = 2
            If .ShowDialog = Windows.Forms.DialogResult.OK Then
                Me.BackgroundImage = Image.FromFile(.FileName)
            End If
        End With
    End Sub

e apaga o resto dai para baixo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora