2017-08-31 160 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); 
相關問題