Karty w windows forms

Karty w windows forms
Y1
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 6 lat
  • Postów:7
0

Witam, piszę (może za dużo powiedziane). Staram się pisać program Windows Forms w C# i chciałbym użyć czegoś w rodzaju kart w przeglądarce. Tzn żeby zawsze były dostępne. W drugiej karcie chcę przechowywać wyniki działań z pierwszej karty. Jakiego elementu z przybornika powinienem użyć? O ile jest coś takiego. Ewentualnie proszę o jakąś alternatywę.

Pewnie będę miał jeszcze jakieś pytania.
Z góry dzięki za pomoc.

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
0

Zainteresuj się TabControl. Tak na szybkiego:

Są też filmy:

Pełno tego w goglach generalnie.

edytowany 1x, ostatnio: grzesiek51114
Y1
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 6 lat
  • Postów:7
0

Dzięki, rzeczywiście się pospieszyłem z tematem. Mam kolejny problem, który wcześniej próbowałem rozwiązać przez google.

Otóż chcę dodać opcję drukowania. Tylko chciałbym żeby wyświetlało się okno dialogowe PrintDialog. I oczywiście to nie problem. Problemem jest to co dzieje się później, Po wybraniu drukarki i naciśnięciu Drukuj nic się nie dzieje. Ktoś mógłby mnie naprowadzić co powinno znaleźć się w kodzie? Zapewne musi się tam też znaleźć, nazwijmy to, wzorzec wydruku.

Aha, i mam problem ze zmianą nazwy podmenu elementu menustrip. Menu główne zmieniłem:

Kopiuj
        private void angielskiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form.ActiveForm.Text = "Payroll";
            menuStrip1.Items[0].Text = "File";
            menuStrip1.Items[1].Text = "Edit";
            menuStrip1.Items[2].Text = "Option";
            menuStrip1.Items[3].Text = "Help";
        }

Nie wiem jak się dostać do elementu np drukuj, który znajduje się po naciśnięciu "File"

edytowany 1x, ostatnio: Yeti16sm
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 22 godziny
0
  1. https://msdn.microsoft.com/en-us/library/xdt36c58%28v=vs.110%29.aspx

  2. dlaczego wypełniasz menustripa w kodzie? jest jakiś konkretny powód?

0

Dzięki.. Tak mam powód. Chcę zrobić zmianę języka. Wiesz może jak się dostać do submenu z poziomu kodu?

Y1
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 6 lat
  • Postów:7
0

Przepraszam za post pod postem. Mogę liczyć na pomoc z przypisaniem konkretnego znaku MaskedTextBoxa?

Próbowałem już m.in. coś w stylu:

MaskedTextBox1.Text[0].ToString() = "0";

Wywala błąd, że po lewej musi być zmienna.

SK
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:117
0

A co w ogóle chcesz zrobić?
Tak poza tym właściwość Text jest stringiem więc nie musisz dodawać ToString()
Może chodziło Ci o coś takiego: maskedTextBox1.Text = "0" - ale to nie tak się robi, jeśli dobrze się domyślam co chcesz zrobić.


edytowany 3x, ostatnio: cSharpKazik
Y1
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 6 lat
  • Postów:7
0

Chcę przypisać dowolny znak konkretnemu znakowi w moim maskedTextBox. I wydaje mi się, że to jest char a nie string. Jestem laikiem, więc mogę się mylić.. Prawdę mówiąc to załątwiłem to już w inny sposób :) Ale tutaj coś z czym sobie na pewno nie poradzę :) Może na początek kod:

Kopiuj
            if (maskedTextBox1.Text.Contains(" "))
            {
                MessageBox.Show("Wprowadziłeś złą datę w polu: Rachunek z dnia\n\nPoprawny format to dd/mm/rrr", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            string dzien;
            dzien = maskedTextBox1.Text[0].ToString();
            dzien += maskedTextBox1.Text[1].ToString();

            string miesiac;
            miesiac = maskedTextBox1.Text[3].ToString();
            miesiac += maskedTextBox1.Text[4].ToString(); 

            string rok;
            rok = maskedTextBox1.Text[6].ToString();
            rok += maskedTextBox1.Text[7].ToString();
            rok += maskedTextBox1.Text[8].ToString();
            rok += maskedTextBox1.Text[9].ToString();

Mój MaskedTextBox1 wygląda następująco __/__/____ gdzie _ to dd/mm/rrrr. Jak wpiszę, np 12/__/____ (2 znaki z miesiąca i cały rok zostawię pusty) to pięknie wchodzi do if'a podanego wyżej. Wywala msgboxa i wychodzi z metody. Co jest zrozumiałe, bo po pierwszym niewypełnionym miejscu jest "/" i to miejsce zamienia się w spację.

Ale już kiedy wpiszę 12/12/____ (tylko rok pusty) to nie wchodzi do if'a, tak jakby automatycznie skracał ciąg znaków... OK, to też nie jest dziwne. Pomyślałem, że skoro skraca to do ifa dodam warunek

if ((maskedTextBox1.Text.Contains(" ")) || (maskedTextBox1.TextLenght < 10)) - jeśli się pomyliłem z nawiasami to nie zwracajcie uwagi, w Visual Studio było ok...

Przeleciałem kod krokowo i na dole jest napisane, że string wygląda,np tak "11/11/"... Ale tutaj najdziwniejsze.. Poniżej widnieje informacja MaskedTextBox1.TextLenght = 10

I zgłupiałem.

Oczywiście jeśli wpiszę 12/12/___1 to wszystko działa ponieważ po niewpisanych miejscach jest znak. W tym wypadku "1".

edytowany 7x, ostatnio: Yeti16sm
SK
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:117
0

A nie lepiej po prostu użyć DateTimePicker'a ?


0
cSharpKazik napisał(a):

A nie lepiej po prostu użyć DateTimePicker'a ?

Pewnie lepiej :) Ale już zacząłem robić na maskedtextboxach i też nie jest źle.

Kaziku jesteś w stanie odpowiedzieć mi czemu mimo ciągu "11/11/", TextLenght = 10 ?

WeiXiao
Hmm. "Mój MaskedTextBox1 wygląda następująco //____ gdzie _ to dd/mm/rrrr." .................... Skąd się to może brać? dd + mm + rrrr = 8 znaków + 2x / = 10 znaków Tak bym obstawiał, ale nie wiem i nie wiem też dlaczego ;p
JU
  • Rejestracja:około 22 lata
  • Ostatnio:2 miesiące
  • Postów:5042
1

Dlatego 10, bo masz jeszcze 4 kreski: ____ na rok. TextLength zawsze Ci zwróci w tym przypadku to, co jest w MaskEdicie - nawet te kreski, które wskazują na miejsce do wpisania.

0
Juhas napisał(a):

Dlatego 10, bo masz jeszcze 4 kreski: ____ na rok. TextLength zawsze Ci zwróci w tym przypadku to, co jest w MaskEdicie - nawet te kreski, które wskazują na miejsce do wpisania.

No tak, ale czemu po wprowadzeniu dnia i miesiąca (zostawiając rok pusty) string wygląda "11/11/" zamiast "11/11/____"

Ponadto jeżeli zrobię if'a, który sprawdza czy maskedtextbox1.text contain "_" to nawet do niego nie wchodzi...

Y1
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 6 lat
  • Postów:7
0

Dla potomnych. Udało mi się zażegnać problem.

Kopiuj

 if (maskedTextBox1.MaskFull == false)
            {
                MessageBox.Show(...);
                return;
            }

Załatwiło sprawę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.