Witam. Jestem początkującym użytkownikiem Micosoft Visual studio 2010 Express. Piszę pewien program, i mam kilka wątpliwości co do rozwiązania kilku moich problemów:
Jak zabezpieczyć Textbox’a, by można w nim wpisywac tylko liczby (np. od 10 do 30)?
Jak “grupować” radiobuttony tak, by w np. 2 kategoriach móc wybrać po jednej opcji?
Jak utworzyć zależność wybranej opcji od wykonywania obliczeń (Jeśli np. wybiorę opcję 1, to do jakiegoś wyniku dodaję 100, a jak wybiorę opcję 2, to do wyniku dodaje 50)?
Możesz np. obsłużyć zdarzenia KeyDown/KeyPress, wpuszczać tylko cyfry, a w TextChanged odrzucać wartości spoza zakresu.
Chociaż ja użyłbymkontrolki NumericUpDown zamiast TextBoxa do wprowadzania liczb.
Wsadź je do GroupBoxa.
Przemyśl to pytanie i zadaj je jeszcze raz, w sposób zrozumiały. Na razie zgaduję, że chodzi Ci o sprawdzenie czy jakiś RadioButton jest zaznaczony, ale nie jestem pewien, czy o to Ci chodzi.
Po pierwsze … Mówimy o zwykłej aplikacji okienkowej?
Najłatwiej byłoby użyć zamiast kontrolki TextBox kontrolki NumericUpDown i ustawić właściwości Minimum i Maximum na 10 i 30. Jeśli jednak konieczne musi to być TextBox to ja bym zrobił to tak. Tworzysz nową klasę np. MyTextBox, która będzie dziedziczyć po klasie System.Windows.Forms.TextBox. W tej klasie przeciążasz metodę OnTextChanged i/lub OnKeyPress (być może wystarczy jedna z nich, sam sprawdzisz). I do tych metod/tej metody wstawiasz kod, który sprawdzałby odpowiednie warunki. Następnie na formie będziesz umieszczał nie tą standardową kontrolkę TextBox, a tą swoją nowoutworzoną kontrolkę.
Można, np. umieścić te kontrolki RadioButton w kontrolce Panel. Czyli po dwa różne Radiobutton-y w dwóch różnych Panel-ach.
Jeśli przez wybiorę masz na myśli np. wartości umieszczone na kontrolce ComboBox to możesz obsłużyć zdarzenie SelectedIndexChanged tej kontrolki. W tym zdarzeniu umieścisz kod, który wykona to dodawanie określonej liczby do jakiegoś tam wyniku w zależności od wskazanej wartości.
Tworzysz sobie w bazie danych tabelę o takich kolumach: ID, Kategoria, Opcja, Wartość
Na formie umieszczasz 2x Label i podpisujesz je Kategoria1 i Kategoria2 (czy jak tam będziesz chciał) oraz 2x ComboBox
Każdy z tych ComboBox-ów wypełniasz na podstawie danych w utworzonej wcześniej tabeli, przy czym dla każdego ComboBox-a będziesz musiał te dane odpowiednio przefiltrować po kategori (możesz w tym celu skorzystać z kontrolki BindingSource)
W zdarzeniach SelectedIndexChanged ComboBox-ów przechwytujesz informację o tym, czy użytkownik wybrał nową opcję i na podstawie tego modyfikujesz wysokość ceny.
Zrobiłem buttona o Nazwie “Oblicz”, i dodałem If-y
If opcja1.Checked = True Then
cena = cena + x
End If
If opcja2.Checked = True Then
cena = cena + y
End If
gdzie cena to wcześniej zadeklarowana zmienna, a x i y to jakieś stałe.
Ale pojawił się kolejny problem.
Chcę dodać ikonkę do programu, lecz gdy podaję ścieżkę do pliku Icon.ico, pojawia się błąd: “Argument ‘Picture’ must be a picture that can be used as Icon.” Co jest nie tak?