Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skicka värden från usercontroll till form

Postades av 2012-05-01 20:10:46 - Benni Svensson, i forum c# (c-sharp), Tråden har 5 Kommentarer och lästs av 6910 personer

Jag har tillbringat den senaste vecken med att söka efter svar på internet men ingenting har lyckats.
Jag har en userkontroll med ett antal comboboxar. Jag vill skicka resultatet till min form, eg toolStripStatusLabel2.Text som finns i formen.
<code>
//i usercontrollen
private void cmbOrginal_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbOrginal.Text.Length != 0 || listView1.Items.Count > 1)
{
toolStatusText2= cmbOrginal.Text;
//osv
//property
public string ToolStatusText2
{
get
{
return cmbOrginal.Text;
}
set
{
toolStatusText2 =value;
}
}
// i form frmTranspose
public string ToolStatusText2
{
get
{
return transposer1.ToolStatusText2;
}
set
{
toolStripStatusLabel2.Text = value;

}
}
</code>
Jag får inga som helst error, men jag lyckas inte heller att överföra några värden.
Tips och råd tas tacksamt imot.


Svara

Sv: Skicka värden från usercontroll till form

Postades av 2012-05-02 11:07:18 - Tomas Granlund

Låter som det du beskriver är att usercontrolen ska kunna skicka ett event till sin host(?)

Se t.ex. http://ondotnet.com/pub/a/dotnet/2002/04/15/events.html

I ditt fall nåt i stil med följande:

		/* i usercontrol */
		public delegate void SelectedItemChanged(object sender, EventArgs e);
		private void cmbOrginal_SelectedIndexChanged(object sender, EventArgs e)
		{
			if (cmbOrginal.Text.Length != 0 || listView1.Items.Count > 1)
			{
				ToolStatusText2 = cmbOrginal.Text;
				if (SelectedItemChanged != null)
				{
					SelectedItemChanged(this, EventArgs.Empty);
				}
			}
		}

		public string ToolStatusText2 { get; set; }


		/* i klassen som hostar usercontrol-instansen */
		public frmTranspose ()
		{
			this.transposer1.SelectedItemChanged += transposer_change;
		}

		private void transposer_change(object sender, EventArgs e)
		{
			toolstripStatusLabel2.Text = this.transposer1.ToolStatusText2;
		}


Svara

Sv:Skicka värden från usercontroll till form

Postades av 2012-05-02 12:03:51 - Benni Svensson

Hej Tomas och tack för ditt svar.
Först, eftersom det rör sig om flera comboboxar så utgår jag ifrån att det måste vara en delegat för varje combobox, så jag bytte namn till <b>cmbOrginalSelectedItemChanged</b>
Jag får därimot ett problem(error)
<code>
MusicTranspose_3.Transposer.cmbOrginalSelectedItemChanged' is a 'type' but is used like a 'variable'
//classen ser ut så här nu
private void cmbOrginal_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbOrginal.Text.Length != 0 || listView1.Items.Count > 1)
{
toolStatusText2 = cmbOrginal.Text;
if (cmbOrginalSelectedItemChanged != null)
{
cmbOrginalSelectedItemChanged(this, EventArgs.Empty);
}
cmbNydur.Enabled = true;
cmbNydur.Focus();
}
//sen kommer en else-sats men det spelar nog ingen roll här nu.
</code>
Jag försöker att läsa och förstå den länken du skickade med, men än så har det inte hjälpt mig, trögfattad???


Svara

Sv: Skicka värden från usercontroll till form

Postades av 2012-05-02 13:07:30 - Benni Svensson

Jag har fösökt att förstå och att test...
<code>
//om jag gör så här
cmbOrginalSelectedItemChanged selectedItem = new cmbOrginalSelectedItemChanged();
toolStatusText2 = cmbOrginal.Text;
if (selectedItem != null)
{
selectedItem(this, EventArgs.Empty);
}
// så har jag BARA ett error kvar:
MusicTranspose_3.Transposer.cmbOrginalSelectedItemChanged' does not contain a constructor that takes 0 arguments
</code>
.. och då är frågan, vad göra?


Svara

Sv: Skicka värden från usercontroll till form

Postades av 2012-05-02 13:14:37 - Tomas Granlund

Miss av mig (har inte möjlighet att testköra själv, så jag kör på gehör)...

// i nåt lämpligt namespace, t.ex. i usercontrolen
// Denna rad säger i princip "Om en metod returnerar void och tar 2 argument av typerna object respektive EventArgs) så kan vi för enkelhetens skull kalla den arten av metoder för cmbOrginalSelectedItemChangedHandler". 
public delegate void cmbOrginalSelectedItemChangedHandler(object sender, EventArgs e);

// i usercontrolen
// Denna rad säger att "Ibland ska den här klassen kunna kräkas ur sig ett event. För att någon ska kunna hantera ett sådant event måste eventhanteraren uppfylla de villkor som gäller för en cmbOrginalSelectedItemChangedHandler (se ovan).
public event cmbOrginalSelectedItemChangedHandler cmbOrginalSelectedItemChanged;

private void cmbOrginal_SelectedIndexChanged(object sender, EventArgs e)
{
/*...*/
// Här triggas eventen. Om någon eventhandler (kan vara 0, 1 eller flera) har registrerat sig så kommer de kicka igång nu.
cmbOrginalSelectedItemChanged(this, EventArgs.Empty);
/*...*/


Svara

Sv:Skicka värden från usercontroll till form

Postades av 2012-05-02 13:38:50 - Benni Svensson

Tack Tomas, inga error men ingenting skrivs till toolStripStatusLabel2.Text.
Skall verkligen propertyn se ut så här:
<code>
public string ToolStatusText2 { get; set; }
</code>
..kan det vara det som är galet?

Jag ändrade till
<code>
public string ToolStatusText2
{
get
{
return toolStatusText2;
}
set
{
toolStatusText2 = value;
}
}
</code>
Nu fungerar det, men jag har nog orsak att komma tillbaka.
Jag lyfter på hatten för dig, tack Tomas


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 763
27 959
271 761
474
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies