On 25 Jul., 13:37, "Tark Siala" <tarksi...@ic c-libya.comwrote:
thanks
but how i can access to any "itemdata" or know what "itemdata" is selected
now in combobox?
for example: in VB6 i write this code:
Id = vba.trim(me.com bobox.itemdata( vba.abs(me.comb obox.listindex) ))
how i can read itemdata in C# like VB6 ?
thanks
-----------
Tarek M. Siala
Software Developerhttp://tarksiala.blogs pot.com
"Ben Voigt [C++ MVP]" <r...@nospam.no spamwrote in messagenews:uU* *************@T K2MSFTNGP04.phx .gbl...
"Tark Siala" <tarksi...@ic c-libya.comwrote in message
news:eF******** ********@TK2MSF TNGP02.phx.gbl. ..
hi dear
i'm programmer with VB6, but now i starting with C#.
first problem is coming when i need fill "ComboBox Control", as you know
when i fill combobox in VB6 by this code:
comboX.AddItem "Monday"
comboX.ItemData (comboX.NewInde x) = 1
comboX.text = ComboX.List(0)
where:
Item is what Client can see.
ItemData what i want to know to make something (its like a key).
Create a class to hold your data, override ToString() to control what the
user sees:
class ListBoxEntry
{
public int ItemData;
public string Caption;
public ListBoxEntry(in t key, string text) { ItemData = key; Caption =
text; }
public override string ToString() { return Caption; }
}
comboX.Items.Ad d(new ListBoxEntry(1, "Monday"));
A combo/listbox doesn't have "itemdata" as in VB6, instead you can
access the combo-box's value/tag as an object of any datatype you
like.
1) create a windows application.
2) Add 1 combobox (named comboxBox1) , 1 button named button1 and 2
labels named label1 and label2.
3) Add this class to your form-class:
public class ComboBoxItem
{
private string _Caption = "No Caption Set";
private int _Value = 0;
public string Caption
{
get
{
return this._Caption;
}
set
{
this._Caption = value;
}
}
public int Value
{
get
{
return this._Value;
}
set
{
this._Value = value;
}
}
}
Add paste this code into the form-class's button1_click event (double
click on the button to get the event-code):
private void button1_Click(o bject sender, EventArgs e)
{
if (comboBox1.Sele ctedItem != null)
{
label1.Text = "Caption:" +
((ComboBoxItem) comboBox1.Selec tedItem).Captio n;
label2.Text = "Value:" +
((ComboBoxItem) comboBox1.Selec tedItem).Value. ToString();
}
}
and then this :
void LoadCombo()
{
// This can/should only be done once.
comboBox1.Displ ayMember = "Caption"; // Member from the ComboBoxItem
class to visualize.
// Using self-made class, for pupulation of the combobox.
// See ComboBoxItem (easy simple class)
ComboBoxItem CI;
CI = new ComboBoxItem();
CI.Caption = "My Caption";
CI.Value = 10;
comboBox1.Items .Add(CI); // Now the comboxbox item consists of a
ComboBoxItem (which can be any class).
CI = new ComboBoxItem();
CI.Caption = "My Caption2";
CI.Value = 20;
comboBox1.Items .Add(CI); // Now the comboxbox item consists of a
ComboBoxItem (which can be any class).
}
Now, add this to the form's load event:
private void Form1_Load(obje ct sender, EventArgs e)
{
LoadCombo();
}
That's it ! - You may design your ComboBoxItem class just as you need,
it can be anything, and the DisplayMember can even hold bitmaps for
visualizing icons etc. as far as i remember! - Try it out ! :-)
Regards
Brian Bergh