2017-08-31 107 views
1

我想将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(); 
} 

我不知道这个代码是完美的。

+0

你会得到什么错误? – waka

+0

@waka我得到这个错误“Complex DataBinding接受作为数据源的IList或IListSource。”在“cmb_hafta.DataSource = hafta [i];”代码行。但我不认为这样的代码是完美的。 –

+0

其cmb_hafta.DataSource = hafta;而不是hafta [i]; –

回答

1

在文本框的文本改变:

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

谢谢。它的工作。 –

0

你可以做这样的事情:

 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; 
1

如果你谈论的结合,那么你就可以绑定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); 
相关问题