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玩..
我怎麼能這樣做?我完全失明瞭。讓我擺脫這個問題。