1
你好开发者,再次出现这里有新问题!!
在我的线程程序中,当我改变控件的值时,我遇到了问题。
问题是:跨线程操作无效。
是的..我得到了解决方案的下面的功能,让我可以访问控制线程。十字绣操作无效 - 更改网格单元格值
delegate void SetControlValueCallback(Control oControl, string propName, object propValue);
private void SetControlPropertyValue(Control oControl, string propName, object propValue)
{
if (oControl.InvokeRequired)
{
SetControlValueCallback d = new SetControlValueCallback(SetControlPropertyValue);
oControl.Invoke(d, new object[] { oControl, propName, propValue });
}
else
{
Type t = oControl.GetType();
System.Reflection.PropertyInfo[] props = t.GetProperties();
foreach (System.Reflection.PropertyInfo p in props)
{
if (p.Name.ToUpper() == propName.ToUpper())
{
p.SetValue(oControl, propValue, null);
}
}
}
}
,当我需要改变控制值(像拉布勒的变化文本),我使用该函数
SetControlPropertyValue(_form.lblImportFiles, “文本”, “导入...”);这样并且它改变了它的值。
Now..I要更改网格单元的值或需要其行property..etc玩..
我怎么能这样做?我完全失明了。让我摆脱这个问题。