我有一些lookupedit绑定到一些列表,用户可以选择值,然后保存在数据库中。我使用EditValueChanged事件来处理这些值。到目前为止一切都很好!
现在,我需要从数据库中获取这些值,并将它们分配给lookupedit。我没有对整个对象使用BindingSource,因为lookupedit被绑定到独立的列表。正如我从文档中假设和阅读的那样,SelectedText是我需要的,但是当我分配我想要的字符串时,它就不起作用了,并设置了一个空字符串。与DateEdit控件的行为相同,我分配了一个DateTime值,似乎有这个值,但并没有显示出来。我可以设置EditValue属性,但再次在LookUpEdit中没有显示任何内容。
如何强制LookUpEdit显示我想要的值,基本上就是转到带有我设置的值的行并在编辑器中显示文本,或者设置SelectedText并将其与其列表相匹配并显示它!
我想这应该是easier...Any帮助的感谢!
示例:
myLookUpEdit.SelectedText = "George" // The LookUpEdit is Binded to a List<Names> and has the name George.谢谢
发布于 2010-02-22 23:54:08
每当我设置LookupEdit的值时,我都会使用EditValue。
您需要确保将LookupEdit的ValueMember属性设置为您希望在EditValue中显示的任何内容。当LoodupEdit关闭时,DisplayMember将显示什么。可以将一个字符串传递给要在对象中使用的属性的名称,然后再传递给这些属性。
据我所知,设置SelectedText值与在控件中键入具有相同的效果。
public partial class Form1 : Form
{
List<Name> MyNames = new List<Name>();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
MyNames.Add(new Name("John", "Smith"));
MyNames.Add(new Name("John", "Doe"));
MyNames.Add(new Name("Jane", "Doe"));
MyNames.Add(new Name("Jane", "Smith"));
lookUpEdit1.Properties.DataSource = MyNames;
lookUpEdit1.Properties.DisplayMember = "FirstName";
lookUpEdit1.Properties.ValueMember = "FirstName";
}
private void lookUpEdit1_EditValueChanged(object sender, EventArgs e)
{
string mystring = lookUpEdit1.EditValue.ToString();
lookUpEdit1.EditValue = mystring;
}
}
public class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Name(string firstName, string lastName)
{
this.FirstName = firstName;
this.LastName = lastName;
}
}https://stackoverflow.com/questions/2290632
复制相似问题