C# 如何使用dll向窗体发送消息?
我正在用c开发一个使用dll的gui应用程序。此dll包含几个常见函数,如属性验证 但是,我需要使用如下函数验证对象的属性:C# 如何使用dll向窗体发送消息?,c#,forms,dll,C#,Forms,Dll,我正在用c开发一个使用dll的gui应用程序。此dll包含几个常见函数,如属性验证 但是,我需要使用如下函数验证对象的属性: public static bool validate(MyObject object) { bool success = true; // some validation if(!valid(object.property)) { // log to database, this works log("property is not
public static bool validate(MyObject object)
{
bool success = true;
// some validation
if(!valid(object.property))
{
// log to database, this works
log("property is not valid"); // log to database, this works
// how can I do this?
sendMessageToForm("property is not valid");
success = false;
}
return success;
}
此外,validate必须返回布尔值,而不是消息字符串
如何通过dll向窗体发送消息?您需要在项目中添加dll的引用,然后在类中添加dll的命名空间,稍后声明类的对象并调用验证消息并传递参数以进行验证。如果您在此处显示的是dll中的代码,我假设您想从dll内部更新表单。 实现这一点的方法是让dll类发布一个事件,比如ValidationError事件,该事件还将作为EventArgs附带要在窗体上显示的消息 然后,在窗体上,从dll类实例化对象,还必须为该事件附加一个侦听器
MyClassInDll myObject=new MyClassInDll();
myObject.ValidationError+=new EventHandler<ValidationErrorMessage>(YourMethodThatDisplaysTheMessagesOnTheForm);
然后,您可以使用该对象调用if myObject.ValidatesomeOtherObject,它将返回一个布尔值,同时仍会触发将错误消息发送到表单的事件
public static bool validate(MyObject object, out message)
这将为您提供一个输出消息字符串,可以从调用validate的位置进行设置