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

时间:2012-03-08 06:42:33

标签: c# forms dll

我正在使用dll在c#中开发一个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向表单发送消息?

3 个答案:

答案 0 :(得分:0)

您需要在项目中添加dll的引用,之后在类中添加dll的名称空间,声明类的对象并调用validate消息并传递参数以进行验证。

答案 1 :(得分:0)

如果您在此处显示的是您的dll中的代码,我假设您要从您的dll内部更新表单。 这样做的方法是让你的dll class发布一个事件,比如说ValidationError事件,它也会随身携带EventArgs你希望在表单上显示的信息。

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

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

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

答案 2 :(得分:0)

public static bool validate(MyObject object, out message)

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