如果窗体上有几个控件,PictureBox或者TextBox,我想以它们的某些属性为参数传入一个方法中,然后在方法里改变这些属性的值应该怎么做?比如DataRow drow=...;void setValue(object obj,string BindString)
{
obj = drow[BindString];
}
{
obj = drow[BindString];
}
还有要实现你这个功能,介意你去看看out ref类型的参数,一看就明白了例子如下:
private void button2_Click(object sender, EventArgs e)
{
haha(ref label1);
}
private void haha(ref Label label1)
{
label1.Text = "xxx";
}
传入的实参必须是指向对象属性的一个引用,因为我要将其存入Hashtable中.........
总之这个问题非常麻烦
{
this.syncControls.Add(obj);//此处传入的并非ref
this.syncInfo.Add(obj,BindString);//此处传入的并非ref
}
我现在作的是一个可以将控件的某些属性绑定到一个数据源上的类库,这个类必须能够随时指向需要绑定的控件的属性上,也就是说,像上面给出的函数的使用方法应该为:DataSync DS = new DataSync();
DS.Add(this.textBox1.Text,"列1");
DS.Add(this.pictureBox1.Image,"图像");它是要自由绑定的,并且不判断数据格式.
从语义的角度你这个add都是说不通的。应该是改好了属性再加进去。请说说你在add里要修改入参的理由?
{
PropertyDescriptor pd = TypeDescriptor.GetProperties(obj)[propertyName];
if(pd ! null)
{
pd.SetValue(obj, drow[BindString]);
}
}