Hej Du får skapa ett event i ditt lilla input-formulär, sen prenumerera på eventet i huvudformuläret. Hittade detta tips men ska man göra det lilla formuläret public eller det som jag jobbar i annars? Hej! Tack för hjälpen, jag ska testa lite men det känns som att det ska fungera. Jag är väldigt ringrostig när det kommer till språk som C#, hackade en hel del C++ i skolan men det var väldigt länge sedan. Hej! Jaha, där fick man lära sig något nytt. Jag kör visual studio 2008. Bra att det fungerar.Data mellan winforms
Har sökt som fasen här på forumet men inte hittat något. De sidor som jag har googlat fram har inte hjälpt mig heller så nu tar jag mig i kragen och frågar er.
Jag har ett formulär med en listbox samt två knappar. Trycker man på lägg till kommer ett nytt formulär där man skriver i en textbox och trycker ok. Då vill jag ha in värdet i min listbox på en ny rad., får fasen inte till det. försökt mig på form1.lblEmails.Items.Add(variable) i form2 men icke.
Otroligt tacksam för svar
Nisse PetterssonSv: Data mellan winforms
Sen är det bara att skicka in texten du skrivit in som argument till eventet.Sv: Data mellan winforms
http://www.syncfusion.com/faq/windowsforms/faq_c95c.aspx#q646q
Någon som kan ge mig en fingervisning?Sv:Data mellan winforms
Du har en metod i det lilla formuläret som retunerar det som matats in.
frmInput input = new frmInput();
if (input.ShowDialog() == DialogResult.OK)
{
lst.Items.Add(input.GetData())
}
Metoden ShowDialog öppnar ett modalt fönster, alltså ett som måste stängas innan man kan gå vidare. Metoden GetData (eller vad du vill kalla den) retunerar värdet som matats in. Värdet DialogResult.OK retuneras när användaren stänger det lilla formuläret.
I det lilla formuläret anger du att en viss knapp retunerar DialogResult.OK.
mvh Per
Sv: Data mellan winforms
Jag kör med en konstruktor i nya fönster för att skicka med värden till de nya fönstren. Ska testa lite att skicka tillbaka värden när jag stänger fönstret.
Edit:
Jag får felmeddelande när jag returnerar dialogrestult.ok.
Här är koden i mitt fönster där man editerar epost.
public string GetData()
{
return tbEmailAdress.Text;
}
public DialogResult btSaveEmail_Clicked(object sender, EventArgs e)
{
return DialogResult.OK;
}
Nedan koden som öppnar nya formuläret EditEmail private void btEditEmail_Click(object sender, EventArgs e)
{
EditEmail frmEditEmail = new EditEmail();
if (frmEditEmail.ShowDialog() == DialogResult.OK)
{
ListViewEmailAdresses.Items.Add(frmEditEmail.GetData());
}
}
När jag kör koden får jag felmeddelande i Designer filen för edit Email formuläret. Klagar på att det är fel return typ på raden nedan.this.btSaveEmail.Click += new System.EventHandler(this.btSaveEmail_Clicked);
Mvh
Nisse Pettersson
Sv:Data mellan winforms
Men du behöver inte skriva en egen metod för att retunera DialogResult.OK, detta gör du genom att i egenskaperna för knappen och för formuläret ange att en viss knapp ska retunera DialogResult.OK, du behöver alltså absolut inte skriva egen metod för detta. Gör metoden för Click-händelsen för knappen som en vanlig metod för händelser (void). Resten tar formuläret hand om själv.
Har svårt att tro att metoden för en Click-händelse kan ha något annat än returntypen void, det är säkert det som är felet, du kan helt enkelt inte ha returntypen DialogResult på en händelsemetod.
Känns som du försöker göra lite för mycket själv, låt Visual Studio sköta det istället.
Eller kör du inte Visual Studio?
mvh PerSv: Data mellan winforms
Fick det även att fungera innan jag läste ditt svar om jag la till följande rad i funktionen för clickhändelsen.DialogResult = DialogResult.OK;
Men nu har man lärt sig nya saker. Tack så mycket för hjälpen Per
Sv:Data mellan winforms
Anledningen till att DialogResult = DialogResult.OK fungerar är att DialogResult är instansvariabel i formuläret.
Du kan också ange att en viss knapp ska fungera som Cancel-knapp.
mvh Per