如何将ComboBox值绑定到TextBox值
问题描述:
我想将ComboBox
的值绑定到TextBox
的值。这里有一个例子:如何将ComboBox值绑定到TextBox值
比方说,我有一个TextBox
和一个ComboBox
现在TextBox
存在的5的值,所以按照该TextBox
值为5我ComboBox
将高达5,并在列表中绑定ComboBox
它会看到数量达5,即1,2,3,4,5。
相同,如果TextBox
包含值3然后按TextBox
值的当场ComboBox
的变化应在高达TextBox
值来结合。
我正在处理它,但也有一些列表错误。
这里是我的代码:
List<string> hafta = new List<string>();
hafta.Add(txt_hafta.Text);
for (int i = 0; i <= hafta.Count; i++)
{
cmb_hafta.BindingContext = this.BindingContext;
cmb_hafta.DataSource = hafta[i];
cmb_hafta.DisplayMember = i.ToString();
}
我不知道这个代码是完美的。
答
在文本框的文本改变:
int count = 0;
Int32.TryParse(txt_hafta.Text, out count);
List<int> dataSource = new List<int>();
for (int i = 1; i <= count; i++)
{
dataSource.Add(i);
}
hafta.DataSource = dataSource;
hafta.DropDownStyle = ComboBoxStyle.DropDownList
+1
谢谢。它的工作。 –
答
你可以做这样的事情:
List<string> hafta = new List<string>();
int total = Int32.Parse(txt_hafta.Text);
for (int i = 0; i <= total ; i++)
{
hafta.Add(i.ToString());
}
cmb_hafta.DataSource = hafta;
答
如果你谈论的结合,那么你就可以绑定ComboBox.DataSource
属性TextBox.Text
属性自定义事件处理程序的Binding.Format
事件,您可以在其中将字符串“转换”为数字的集合。
将下面的代码放置在窗体的构造函数中。
var binding =
new Binding("DataSource", txt_hafta, "Text", true, DataSourceUpdateMode.Never);
binding.Format += (sender, args) =>
{
int.TryParse(args.Value.ToString(), out int maxNumber);
args.Value = Enumerable.Range(1, maxNumber).ToList();
};
cmb_hafta.DataBindings.Add(binding);
你会得到什么错误? – waka
@waka我得到这个错误“Complex DataBinding接受作为数据源的IList或IListSource。”在“cmb_hafta.DataSource = hafta [i];”代码行。但我不认为这样的代码是完美的。 –
其cmb_hafta.DataSource = hafta;而不是hafta [i]; –