2011-12-05 3 views
1

TextBoxのTextプロパティをパネルの幅にバインドするにはどうすればよいですか?テキストをサイズにバインド

panel1.DataBindings.Add("Text", textBox3, "Size.Width"); 

を、それは例外

Object does not match target type. 

EDITが発生します:

は、私が試した、私はテキストボックス内のテキストが変更されると、パネルの幅を変更したいです。

+0

'' TypeConverter'](http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.aspx)を 'string'から' int'に変換する必要があります。バインディングでこのコンバータを使用します。 –

+0

質問の詳細を展開してください... – Sandy

+0

@Danielどうすればいいですか? – kilotaras

答えて

3

を試してみてください。

void MakeBind() 
{ 
    Binding bind = new Binding("Width", textBox3, "Text"); 
    bind.Format += new ConvertEventHandler(bind_Format); 
    panel1.DataBindings.Add(bind); 
} 
void bind_Format(object sender, ConvertEventArgs e) 
{ 
    int i = 0; 
    int.TryParse((string)e.Value, out i); 
    e.Value = i; 
} 

あなたがためにもサイズの値を返すプロパティ、である、あなたが直接Size.Widthを変更することはできませんことを、知っておくべきこれはあなたがこのように変更することはできません。新しい幅で新しいサイズを設定する場合のみ。

+0

愚かな私。魅力的な作品。ありがとうございました。 – kilotaras

-1

これを試してみてください

panel1.DataBindings.Add("Text", int.TryParse(textBox3.text), "Size.Width");

+0

-1:申し訳ありませんが、データバインディングの仕組みはわかりません。 –

関連する問題