• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Microsoft Visual Studio 2019, Visual Basic - ColorDialog

+1 głos
719 wizyt
pytanie zadane 31 lipca 2021 w Visual Basic przez Franciszek Formela Nowicjusz (150 p.)
Witam.

Tworzę program w języku Visual Basic. Mam problem z oknem wyboru koloru, a konkretnie szukam jakiegoś zdarzenia typu "zmieniono kolor", "kliknięto przycisk OK". W oknie dialogowym wybiera się kolor tła programu, który jest zapisywany na zmiennej. W zdarzeniach tego elementu znalazłem tylko takie: "HelpRequest" - kliknięto przycisk pomoc. Na razie stworzyłem pętlę, które jest pusta, nie ma w niej żadnych poleceń, a powtarzana jest, dopóki kolor w oknie dialogowym jest taki sam, jak na zmiennej. Niby wszystko jest dobrze, ale pojawia się błąd, gdy zostanie otwarte okno zmiany koloru, i od razu zamknięte, bez zmieniania koloru. W końcu kolor w oknie dialogowym wciąż jest ten sam, jaki na zmiennej, więc pętla ciągle się powtarza w nieskończoność, przez co program się zawiesza, pojawia się komunikat, że program nie odpowiada, oraz muszę go zamykać poprzez menedżera zadań. Z góry dziękuję za pomoc.
komentarz 31 lipca 2021 przez DarthMazut Bywalec (2,990 p.)

Przepraszam, że nic nie wnoszę do Twojego pytania, ale ciekawi mnie, jakimi kryteriami kierowałeś się, że ze wszystkich języków kompilowanych do CIL wybrałeś akurat VB? smiley

komentarz 31 lipca 2021 przez VBService Ekspert (256,600 p.)

Jeżeli Microsoft Visual Studio 2019 to chodzi dokładnie o VB.NET, jak ktoś chce "robić" apki dla windows-a, na początek wybór nie taki najgorszy.

1 odpowiedź

0 głosów
odpowiedź 31 lipca 2021 przez VBService Ekspert (256,600 p.)
edycja 31 lipca 2021 przez VBService

Ja bym zrezygnował z tej pętli, a jak użytkownik nie chce zmienić kolor, zmienił zdanie, gdy już ma otwarty ColorDialog.  wink

Może porostu dodaj do projektu PictureBox i w nim pokazuj wybrany kolor, wtedy nie potrzebujesz zmiennej do przechowywania koloru, bo np.: PictureBox1.BackColor będzie przechowywał wybrany kolor.

 

Przykład

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Button1.Text = "Wybierz kolor"

        ' Domyslny kolor - uruchomienie programu
        PictureBox1.BackColor = Color.Black
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Ostatio wybrany kolor
        ColorDialog1.Color = PictureBox1.BackColor

        ColorDialog1.ShowDialog()
        PictureBox1.BackColor = ColorDialog1.Color
    End Sub

End Class

1
komentarz 1 sierpnia 2021 przez Franciszek Formela Nowicjusz (150 p.)
Dziękuję, po prostu nie wiedziałem, że program po otwarciu ColorDialog, zanim wykona kolejne polecenia, czeka za zamknięcie ColorDialog ;-)

Podobne pytania

+1 głos
1 odpowiedź 352 wizyt
pytanie zadane 3 września 2020 w Visual Basic przez Laurencjusz Kocik Użytkownik (540 p.)
+1 głos
1 odpowiedź 292 wizyt
0 głosów
1 odpowiedź 368 wizyt

93,692 zapytań

142,611 odpowiedzi

323,220 komentarzy

63,220 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...