如何使用dll向表单发送消息

本文关键字:消息 表单 何使用 dll | 更新日期: 2023-09-27 18:27:10

我正在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 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名称空间。稍后声明类的对象并调用validate消息并传递参数进行验证。

如果你在这里显示的是dll中的代码,我假设你想从dll中更新表单。这样做的方法是让你的dll class发布一个事件,比如ValidationError事件,它也会作为EventArgs携带你想在表单上显示的消息。

然后,在您的窗体上,从dll class实例化对象,您还必须为该事件附加一个侦听器。

MyClassInDll myObject=new MyClassInDll();
myObject.ValidationError+=new EventHandler<ValidationErrorMessage>(YourMethodThatDisplaysTheMessagesOnTheForm);

然后,您可以使用该对象调用if (myObject.Validate(someOtherObject)),它将返回一个boolean,同时仍然触发向表单发送错误消息的event

public static bool validate(MyObject object, out message)

这将为您提供一个输出消息字符串,该字符串可以从调用validate的位置进行设置。