如何将一些文本附加到控件的DisplayMember

本文关键字:控件 DisplayMember 文本 | 更新日期: 2023-09-27 18:24:41

如何在不更改DataSource 的情况下在DisplayMember末尾添加一些文本或其他字段

this.lstSubjects.DataSource = this.subjectBindingSource;
this.lstSubjects.DisplayMember = "Caption";
this.lstSubjects.FormattingEnabled = true;
this.lstSubjects.Name = "lstSubjects";
this.lstSubjects.ValueMember = "SubjectCode";
this.lstSubjects.SelectedIndexChanged += new System.EventHandler(this.lstSubjects_SelectedIndexChanged);

例如,我想在每个列表框行中显示DataTable的CaptionSubjectCode字段,但是每行的值都是SubjectCode

我想要这样的东西:

ListBox的DisplayMember="Technology(AD)"

ListBox的值="AD"

提前感谢

如何将一些文本附加到控件的DisplayMember

首先,您可以将DisplayMember保留为一个属性,例如:

lstSubjects.DisplayMember = "lastname";

现在,在[Design]模式下转到表单,右键单击ListBox->Properties。

在Properties(属性)窗口的顶部,单击Events(闪电图标),

在下面的事件列表(Property Changed下)中查找Format,然后键入一些事件名称,比如:lstSubjectsFormat,然后按Enter键。你会看到这个:

private void lstSubjectsFormat(object sender, ListControlConvertEventArgs e)
{
}

现在在里面写下以下几行:

private void lstSubjectsFormat(object sender, ListControlConvertEventArgs e)
{
    // Assuming your class called Employee , and Firstname & Lastname are the fields
    string lastname = ((Employee)e.ListItem).Firstname;
    string firstname = ((Employee)e.ListItem).Lastname;
    e.Value = lastname + " " + firstname;
}

就是这样;)

我有它给你。据我所知,您正在执行sql查询以获取数据。使用它可以使查询包含所需的字符串。例如,如果您的表包含两个varchar字段,则可以执行

SELECT column1 +'(' + column2 + ')' FROM myTable;

这是最好的方法,也是正确的方法,我花了一些时间才找到…