Přenos hodnoty mezi formuláři   zodpovězená otázka

VB.NET

Zdravím,

potřeboval bych zjistit, jak přenesu mezi 2 formuláři hodnotu. Jedná se mi o následující: mám form, ve kterém mám pole textbox psč a město. Po kliknutí uživatele na tlačítko by se měl otevřít formulář s gridem, ve kterém může uživatel listovat a vybrat potřebné psč, po stisku tlačítka by se měla hodnota vybraného psč a města z gridu přenést do hlavního formuláře a dialogový se seznamem zavřít.

seznam měst otevírám takto:

Dim f As New Select_PSC
f.ShowDialog()

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

Mezi formuláři můžete komunikovat běžně odkazem přes jméno formuláře (máte-li oblast viditelnosti Vámi požadované proměnné odpovídající tomu, odkud voláte).

Ve Vašem případě by to tedy šlo třeba (těch způsobů je samozřejmě mnohem více):

Na Váš formulář (s gridem) bych si dal tlačítka OK a Cancel, s takovýmto obsahem:

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.DialogResult = Windows.Forms.DialogResult.OK
        Me.Close()

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.DialogResult = Windows.Forms.DialogResult.Cancel
        Me.Close()

    End Sub

Pokud toho máte na Formuláři ještě více, bylo by záhodno ještě u toho prvního tlačítka (=tlačítko OK) testovat, je-li z Vaší tavulky vybrán nějaký řádek.

No a pak už stačí volání Vašeho dialogu upravit nějak takto:

  If Form4.ShowDialog() = Windows.Forms.DialogResult.OK Then
            Me.TextBoxPsc.Text = Form4.DataGridView1.CurrentRow.Cells("PSC").Value
            Me.TextBoxMesto.Text = Form4.DataGridView1.CurrentRow.Cells("Mesto").Value
        End If

(ten můj zkušební dialog měl název Form4)

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