none
Qual dos controles se encaixa melhor? RRS feed

  • Pergunta

  • Olá, estou querendo criar uma rotina que contenha um controle que funcionará como se fosse um Booton, ao clicar nele, mude 100% de cor.

    Já tenho visto isso sendo usado mas até hoje não consegui entender como isso é feito. Não sei se existe um controle especial para isso.

    Tenho feito assim, usando PaintBrush, eu desenho um círculo e salvo-o.

    Num Form, eu coloco um PictureBox e anexo à ele o desenho do círculo, ai faço PictureBox1.BackColor=Color.Green

    Mas não consigo mudar a cor do circulo, no máximo muda a cor do contorno retangular do PictureBox.

    Alguém saberia me dizer qual a técnica para que apareça só o circulo e que este mude a cor 100%?

    Grato

    sábado, 28 de novembro de 2020 23:39

Respostas

  • No Paint 3D é possível ter fundo transparente.

    É bem chato, no Photoshop é muito mais fácil.

    Segue link explicativo.

    https://tecnoblog.net/322731/como-deixar-uma-imagem-com-fundo-transparente-no-paint/


    MARIANO1776

    • Marcado como Resposta Durval Teixeira quinta-feira, 3 de dezembro de 2020 20:11
    domingo, 29 de novembro de 2020 19:23

Todas as Respostas

  • Prezado Durval.

    Minha sugestão é usar duas imagens som círculos. Seguem sugestão.

      Dim bool As Boolean = True
        Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
            If bool = False Then
                bool = True
                PictureBox1.Image = Image.FromFile("C:\Users\Mariano\Desktop\imagem_verde.bmp")
            Else
                bool = False
                PictureBox1.Image = Image.FromFile("C:\Users\Mariano\Desktop\imagem_vermelha.bmp")
            End If
        End Sub

        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            If bool = False Then
                bool = True
                Button2.Image = Image.FromFile("C:\Users\Mariano\Desktop\imagem_verde.bmp")
            Else
                bool = False
                Button2.Image = Image.FromFile("C:\Users\Mariano\Desktop\imagem_vermelha.bmp")
            End If
        End Sub


    MARIANO1776


    • Editado Mariano1776 domingo, 29 de novembro de 2020 01:47
    domingo, 29 de novembro de 2020 01:41
  • Obrigado Mariano, vou testar o teu método. Fiz essa rotina abaixo ontem, funciona também.

    Mas dessa tua ideia, me surgiu também fazer dois círculos iguais mas com cores diferentes no Brush.

    Você sabe se tem como excluir as bordas de um PictureBox para aparecer apenas o círculo sem o contorno quadrado do PictureBox. Já olhei bastante nas propriedades do PictureBox e não  vi essa possibilidade ainda.

    Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button4.Click, Button5.Click, Button6.Click, Button7.Click, Button8.Click, Button9.Click, Button10.Click, Button11.Click, Button12.Click, Button13.Click, Button14.Click, Button15.Click, Button16.Click, Button17.Click, Button18.Click, Button19.Click, Button20.Click, Button21.Click, Button22.Click, Button23.Click, Button24.Click, Button25.Click, Button26.Click, Button27.Click, Button28.Click

            Dim botaoDez = New Button() {Button4, Button5, Button6, Button7, Button8, Button9, Button10, Button11, Button12, Button13, Button14, Button15, Button16, Button17, Button18, Button19, Button20, Button21, Button22, Button23, Button24, Button25, Button26, Button27, Button28}

            Dim i As Integer = 0

            For u = 0 To 24

                If sender Is botaoDez(u) Then

                    If botaoDez(u).BackColor = Color.White Then
                        botaoDez(u).BackColor = Color.Red
                        dezSN(u + 1) = "escolhida"
                        numDezEsc += 1
                        dezEscPesq(u + 1) = u

                        If numDezEsc > 15 Then
                            numDezEsc = 15
                            botaoDez(u).BackColor = Color.White
                            MsgBox("Só pode escolher até 15 dezenas!!!")
                        End If

                        GoTo salta

                    End If

                    If botaoDez(u).BackColor = Color.Red Then
                        botaoDez(u).BackColor = Color.White
                        numDezEsc -= 1
                        dezSN(u + 1) = ""
                        dezEscPesq(u + 1) = 0
                    End If

                End If

            Next

    salta:

            For k = 1 To 25
                dezEscPesq(k) = 0
            Next

            For v = 1 To 25
                If dezSN(v) = "escolhida" Then
                    i += 1
                    dezEscPesq(i) = v
                End If
            Next

        End Sub

    domingo, 29 de novembro de 2020 17:45
  • No Paint 3D é possível ter fundo transparente.

    É bem chato, no Photoshop é muito mais fácil.

    Segue link explicativo.

    https://tecnoblog.net/322731/como-deixar-uma-imagem-com-fundo-transparente-no-paint/


    MARIANO1776

    • Marcado como Resposta Durval Teixeira quinta-feira, 3 de dezembro de 2020 20:11
    domingo, 29 de novembro de 2020 19:23