Jag tänkte bygga om min Musiktransposer. I stället för en ända form så tänkte jag försöka med en form och ett antal usercontroller.
Lite problem, i usercontrollen så finns det en del comboboxar. När värdet i de ändras så vill jag skicka det till min huvudform och till toolStripStatusLabel2.Text.
OBS detta är en windowsapplikation.
[REDIGERAT]
//I UserControl
private void cmbOrginal_SelectedIndexChanged(object sender, EventArgs e)
{
toolstriptext2 = cmbOrginal.Text;
//+ lite mera
}
private string toolstriptext2;
public string Toolstriptext2
{
get { return toolstriptext2 = cmbOrginal.Text; }
set { toolstriptext2 = value; }
}
//i Form frmTranspose
public string Toolstriptext2
{
get { return chordanalys1.Toolstriptext2; }
set { toolStripStatusLabel2.Text = value; }
}
Jag får inga som helst värden med mig ;-(
Råd och tips skulle sitta fint. :stud
Jag får inte riktigt någon ordning på din kod så jag kan inte hjälpa dig direkt med det, men så här bör du lösa det.
Dina Usercontroller skall inte veta något om din Form, så du får inte ha någon referens från din usercontroll till din form utan all kommunikation från usercontrollen till formen måste ske med events.
Din Form får givetviss känna till dina usercontrol och kan ha referencer till dessa.
- Så du skapar en usercontrol med alla kod och controller som du behöver
- Du skapar ett event i denna usercontrol som du "Raiser" när du att information från din controll skall skickas till din Form.
- Din form lyssnar på detta Event och skriver ut informationen till till Label.
Kom ihåg att inkapsla dina controller så mycket som möjligt, iprincip så har du inga publika metoder/properties på dessa överhuvudtaget, utan du har en construktor som tar den information den behöver och så event som skickar information tillbaka.
För att avkoppla dina usercontroller ännu mer så använder du IoC och DI för att koppla loss beroende från din usercontroll till andra källor (t.ex hämta data från en databas).