I have tried the below code to get selected value of combo-box to textbox but it give me the following error
Error : Object reference not set to an instance of an object.
Code
private void frmpaymentsearch_Load(object sender, EventArgs e)
{
txtcomvalue.Text = "PaymentVoucherCode";
dllby.DisplayMember = "Text";
dllby.ValueMember = "Value";
dllby.Items.Add(new { Text = "P.Voucher Code", Value = "PaymentVoucherCode" });
dllby.Items.Add(new { Text = "Vendor", Value = "VendorName" });
dllby.SelectedIndex = 0;
}
private void dllby_SelectedIndexChanged(object sender, EventArgs e)
{
txtcomvalue.Text = dllby.SelectedValue.ToString();
}
ComboBox SelectedItem vs SelectedValue
private void dllby_SelectedIndexChanged(object sender, EventArgs e)
{
Type myType = dllby.SelectedItem.GetType();
IList<PropertyInfo> props = new List<PropertyInfo>(myType.GetProperties());
foreach (PropertyInfo prop in props)
{
if(prop.Name=="value")
textBox1.Text = prop.GetValue(dllby.SelectedItem, null).ToString();
}
}
Dictionary comboSource = new Dictionary();
comboSource.Add("1", "Sunday");
comboSource.Add("2", "Monday");
comboSource.Add("3", "Tuesday");
comboSource.Add("4", "Wednesday");
comboSource.Add("5", "Thursday");
comboSource.Add("6", "Friday");
comboSource.Add("7", "Saturday");
comboBox1.DataSource = new BindingSource(comboSource, null);
comboBox1.DisplayMember = "Value";
comboBox1.ValueMember = "Key";
private void frmpaymentsearch_Load(object sender, EventArgs e)
{
txtcomvalue.Text = "PaymentVoucherCode";
dllby.DisplayMember = "Text";
dllby.ValueMember = "Value";
dllby.Items.Add(new { Text = "P.Voucher Code", Value = "PaymentVoucherCode" });
dllby.Items.Add(new { Text = "Vendor", Value = "VendorName" });
dllby.SelectedIndexChanged -= dllby_SelectedIndexChanged; // unsubscribe you event
dllby.SelectedIndex = 0;
dllby.SelectedIndexChanged += dllby_SelectedIndexChanged; // subscribe you event
}
private void dllby_SelectedIndexChanged(object sender, EventArgs e)
{
txtcomvalue.Text = dllby.Text.ToString(); // change selectedvalue to Text
}
private void frmpaymentsearch_Load(object sender, EventArgs e)
{
txtcomvalue.Text = "PaymentVoucherCode";
dllby.DisplayMember = "Text";
dllby.ValueMember = "Value";
dllby.Items.Add(new ComboboxItem(){ Text = "P.Voucher Code", Value = "PaymentVoucherCode" });
dllby.Items.Add(new ComboboxItem(){ Text = "Vendor", Value = "VendorName" });
dllby.SelectedIndex = 0;
}
private void dllby_SelectedIndexChanged(object sender, EventArgs e)
{
txtcomvalue.Text = (dllby.SelectedItem as ComboboxItem).Value.ToString();
}
public class ComboboxItem
{
public string Text { get; set; }
public string Value { get; set; }
public override string ToString()
{
return Text;
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.