繁体   English   中英

根据所选组合框值更改文本框的值

[英]Changing value of textbox according to the selected combobox value

我尝试下面的代码来获取组合框到文本框的选定值,但它给了我以下错误

错误:对象引用未设置为对象的实例。

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与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;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM