how i can fill combo box?

T

Tark Siala

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.NewIndex) = 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).

how i can do that with C# code?
thanks
 
P

PvdG42

Tark Siala said:
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.NewIndex) = 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).

how i can do that with C# code?
thanks

You need to learn about the Items collection of the ComboBox class.
This will help...

http://msdn2.microsoft.com/en-us/library/system.windows.forms.combobox.items(vs.80).aspx
 
M

Mark Rae [MVP]

hi dear
LOL!

how i can do that with C# code?

There are a couple of ways of doing this.

http://www.google.co.uk/search?hl=en&rlz=1T4GGIH_en-GBGB220GB220&q=ComboBox+DataSource&meta=

You can use databinding to bind the ComboBox to a datasource e.g. a DataSet,
DataReader, Array or Generic...

MyComboBox.DataSource = "<datasource object>";
MyComboBox.DisplayMember = "<field to display>";
MyComboBox.ValueMember = "<value to store>";


Alternatively, you can add the items individually:

MyComboBox.Items.Add(new System.Web.UI.WebControls.ListItem("First", "1"));
MyComboBox.Items.Add(new System.Web.UI.WebControls.ListItem("Second", "2"));

Don't worry that you're using the ListItem from the WebControls namespace -
it's all part of the Framework, and will work perfectly...
 
B

Ben Voigt [C++ MVP]

Tark Siala said:
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.NewIndex) = 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(int key, string text) { ItemData = key; Caption =
text; }
public override string ToString() { return Caption; }
}

comboX.Items.Add(new ListBoxEntry(1, "Monday"));
 
T

Tark Siala

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.combobox.itemdata(vba.abs(me.combobox.listindex)))
how i can read itemdata in C# like VB6 ?

thanks
 
B

br.bergh

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.combobox.itemdata(vba.abs(me.combobox.listindex)))
how i can read itemdata in C# like VB6 ?

thanks

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(object sender, EventArgs e)
{
if (comboBox1.SelectedItem != null)
{
label1.Text = "Caption:" +
((ComboBoxItem)comboBox1.SelectedItem).Caption;
label2.Text = "Value:" +
((ComboBoxItem)comboBox1.SelectedItem).Value.ToString();
}
}

and then this :

void LoadCombo()
{
// This can/should only be done once.
comboBox1.DisplayMember = "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(object 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
 
B

Ben Voigt [C++ MVP]

Tark Siala said:
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.combobox.itemdata(vba.abs(me.combobox.listindex)))
how i can read itemdata in C# like VB6 ?

int Id = ((ListBoxEntry)(comboBox1.SelectedItem)).ItemData;
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top