- pluginframework.zip
- PluginFramework
- Demo
- DemoFormPlugin
- DemoUserControlPlugin
- MBG.Extensions
- MBG.IO
- PluginFramework.Attributes
- PluginFramework.Controls
- PluginFramework.Interface
- PluginFramework.sln
- PluginFramework.Utilities
|
using System.Reflection;
using System.Windows.Forms;
namespace MBG.Extensions.Controls
{
public static class ControlExtensions
{
private delegate object GetControlPropertyThreadSafeDelegate(Control control, string propertyName, object[] args);
private delegate void SetControlPropertyThreadSafeDelegate(Control control, string propertyName, object propertyValue);
public static object GetPropertyThreadSafe(this Control control, string propertyName, object[] args)
{
if (control.InvokeRequired)
{
return control.Invoke(new GetControlPropertyThreadSafeDelegate(
GetPropertyThreadSafe),
new object[] { control, propertyName, args });
}
else
{
return control.GetType().InvokeMember(
propertyName,
BindingFlags.GetProperty,
null,
control,
args);
}
}
public static void SetPropertyThreadSafe(this Control control, string propertyName, object propertyValue)
{
if (control.InvokeRequired)
{
control.Invoke(new SetControlPropertyThreadSafeDelegate(
SetPropertyThreadSafe),
new object[] { control, propertyName, propertyValue });
}
else
{
control.GetType().InvokeMember(
propertyName,
BindingFlags.SetProperty,
null,
control,
new object[] { propertyValue });
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.