Visual Basic .NET 2008 rozdělení aplikace   otázka

VB.NET, WinForms

Ahoj,

pracuji na ročníkovém projektu, jsem v počátcích. Mam zatím dva Formy.

Form1

Form2

Když kliknu na položku menu, Form1 se schová a Form2 se objeví. Když kliknu na další položku menu, Form2 se schová a Form1 objeví.

Dá se někde nastavit, aby když přesunu (maximalizuji) jeden Form, aby se to stejné udělalo i s druhým Formem? Tak, aby se další Form zobrazoval na stejném místě jako předchozí se stejnou velikostí okna? Jak to případně zařídit? Nebo je nutné, aby celá aplikace byla v jednom formuláři?

Děkuji, Martin

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Něják mi uniká k čemu Vám budou 2 formuláře se stejnou velikostí které budou na stejném místě, když vždycky jeden bude v pozadí a tudíž nebude vůbec vidět.

Čeho konkrétně potřebujete docílit? Určitě to půjde udělat jinak.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Souhlasim s Honzou, možná by stačilo

skrývat a zobrazovat potřebné prvky

nebo vložit prvek, který má záložky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V aplikaci bude hodně formulářů, které se budou zobrazovat a schovávat podle toho, na jaký prvek menu (menustrip) se klikne. Formulářů nebude málo. Data bude nutné také vypisovat.

Tyto formulář bych si mohl vytvořit "ručně" v kódu. Ale chtěl jsem se zeptat, jesli tady není možnost je navrhnout v grafickém režimu. A zobrazovat a schovávat. Napadlo mě právě rozdělení do více formů.

Moc nevím, jak se při takovém návrhu postupuje. Tohle bude moje první aplikace.

Díky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jak už jsem reagoval, vytvořte si komponenty, které reprezentují jednotlivé "listy" aplikace a ty pak střídejte na jednom formuláři. Pokud je to vaše první aplikace, tak doporučuji rozhodně ale něco jednodušího. Pokud nemáte potřebné elementární znalosti, tak naše rady jak celý problém vyřešit budou buď suplovat právě naučení základních znalostí (což nikdo nechce, na to tu jsou články) a nebo jim nebudete rozumnět.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji za radu, tohle je zajímá řešení. Přečetl jsem si článek http://www.vbnet.cz/clanek--39-vytvareni...

a bytvořil si user control. Obsahuje teď několik TextBoxů.

Pokud jsem měl formulář pouze ve Formu. Nebyl problém data z formuláře uložit do databáze. Klikl jsem na textBox, nastavil DataBindings, vybral BindingSource...

V user control se u příslušného textBoxu DataBindings není. Pouze BindingGroup. Poradili byste mi, jak userControl propojit s databází? Možná znáte nějaký článek, který mi to vysvětlí (hledat jsem zkoušel) Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Než začnete používat binding, zkuste použít klasickou přímou komunikaci s databází:

http://www.vbnet.cz/clanek--52-komunikac...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji, začal jsem požívat Vámi doporučený postup.

Vytvořil jsem si tedy User Control s formulářem. Ten si načtu ve Formu. Po kliknutí na tlačítko se data uloží do databáze.

Teď bych potřeboval data vypsat. Budu třeba vypisovat seznam rezervací, neznám tedy dopředu počet řádků.

Nikdy jsem data nevypisoval, tak nevím, jaké je vhodné řešení pro vypsání tabulkové struktury. Ale představoval bych si to tak, že budu dynamicky vytvářet labely a do každého labelu vložím příslušnou hodnotu. Mohlo by to být nějak takto? Nebo existuje vhodnější řešení? (nemám problém s sql, či syntaxí)

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud víceméně začínáte, tak vložte data do nějakého seznamu. Například ListBox. Vytváření seznamu Labelů možné je a občas i vhodné, ale raději zkuste obecnější řešení.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, jde to udělat pomocí jednoho formuláře. Tam máte jistotu, že bude pro oba aplikační stavy udržovat stejné vlastnosti :-).

Vy pak jen budete měnit jeho obsah. To lze udělat například UserControl komponentou. Na formu bodou 2, každá pro jeden aplikační stav a vy je jen budete schovávat.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Skúste toto

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim frm2 As New Form2
        frm2.StartPosition = FormStartPosition.Manual
        frm2.Size = Me.Size
        frm2.Top = Me.Top
        frm2.Left = Me.Left
        frm2.Show()
        Me.Hide()
    End Sub
End Class

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback