Forum » Programiranje » [C#] toString ne dela
[C#] toString ne dela
teac ::
Imam en class, ki je podedovan od ComboBox
class MyFeedComboBox : System.Windows.Forms.ComboBox
{
string _ime;
public override string ToString() { return _ime; }
}
Potem nekje v kodi ustvarim nov objekt:MyFeedComboBox myCombo = new MyFeedComboBox(); comboBox.Items.Add(myCombo);Ko hočem dodat to v comboBox, naj bi objekt, ki ga dodajam poklical svojo ToString() metodo. Tu pa se pojavi moj problem. Tega mi ne naredi. Zadnji stavek dela v redu, če napišem tako:
comboBox.Items.Add(myCombo.ToString());Zakaj mi ne pokliče svoje ToString metode?
- spremenilo: teac ()
darkolord ::
Funkcija Add() kot parameter sprejme objekt in ne direkt stringa, tako da ne pokliče toString()... Vsaj tako je v 2005
Zgodovina sprememb…
- spremenilo: darkolord ()
rokpok ::
Funkcija add sprejme objekt (kot je že darkolord rekel) in kasneje nad tistim objektom pokliče funkcijo ToString () katere vrnjena vrednost je potem prikazana na seznamu.
A ti tvoj objekt samo ne pokaže v comboBox-u ali ti ga sploh ne doda? Nevem, malo čudno mi zgleda vse to. Kaj pa je naloga tega MyFeedComboBox-a oziroma zakaj deduje od System.Windows.Forms.ComboBox? Če jaz zdaj to prav razumem ti v comboBox dodajaš še en comboBox...
A ti tvoj objekt samo ne pokaže v comboBox-u ali ti ga sploh ne doda? Nevem, malo čudno mi zgleda vse to. Kaj pa je naloga tega MyFeedComboBox-a oziroma zakaj deduje od System.Windows.Forms.ComboBox? Če jaz zdaj to prav razumem ti v comboBox dodajaš še en comboBox...
Rad bi bil pingvin.
Zgodovina sprememb…
- spremenil: rokpok ()
MaCoFaCo ::
Če sem te prav zastopil... Jaz sem naredil spodnjo kodo in dela kot je treba (Visual Studio 2005).
class MyItem
{
public MyItem(string text, object value)
{
this.text = text;
this.value = value;
}
private string text;
private object value;
public override string ToString()
{
return text;
}
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add(new MyItem("item1", "value1")); //v combotu prikazan "item1"
comboBox1.Items.Add(new MyItem("item2", "value2")); //v combotu prikazan "item2"
MyItem item1 = comboBox1.Items[0] as MyItem;
MyItem item2 = comboBox1.Items[1] as MyItem;
}
teac ::
Ta objekt mi doda v combobox, ampak brez teksta, ker ne kliče toString. Če pa sam dodam toString (torej Add(myObject.toString()), ko dodajam objekt v comboBox, pa se tekst izpiše.
Naloga tega mojega comboBoxa? Nič, pač sem si naredil svoj class, ker rabim še nekaj drugih informacij, ki jih pri comboBox-u nimam kam vpisat.
Naloga tega mojega comboBoxa? Nič, pač sem si naredil svoj class, ker rabim še nekaj drugih informacij, ki jih pri comboBox-u nimam kam vpisat.
rokpok ::
Zakaj pa mora ta tvoj objekt (MyFeedComboBox) dedovati od System.Windows.Forms.ComboBox?
Rad bi bil pingvin.
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | C# težavaOddelek: Programiranje | 4240 (3086) | mladec |
| » | [Java] Urejanje baze z JTableOddelek: Programiranje | 1149 (933) | vonNeumann |
| » | c# datagridview in comboxOddelek: Programiranje | 1351 (1239) | OmegaM |
| » | [Visual C#] TableAdapterOddelek: Programiranje | 1299 (1175) | detroit |
| » | c# - problemOddelek: Programiranje | 1522 (1241) | GeeDee |