c# - get result from a call of registered event method and send it to class that called it? -


i using button call method available in sub class main class

how can retrieve result of type myobject gotten when calling executemethoddelegate() inside sub class if method must register event first , wait until complete?

while debugging noticed when sub_myclick executed not wait event called inside executemethoddelegate() computed right way can not use result in main class...

main

void sub_myclick(object sender, eventargs e) {     sub.executemethoddelegate();   //i have object sub available functions } 

inside sub execute event must interact user allow him pick object of type myobject themethod getpicked

inside executemethoddelegate register event leftbuttonreleaseevt like:

    public void executemethoddelegate()     {         myinteractorstyle pick = myinteractorstyle.new();         pick.leftbuttonreleaseevt += (s, args) => getpicked(onleftbuttonup(s, args));                        //here register , event select object             //how can return      myobject result main class         //when      getpicked finishs return myobject not know how return       }     private myobject onleftbuttonup(object sender, eventargs e)     {         //compute stuff         //...         //...           //create object of type myobject named result                    return result;     }       public myobject getpicked(myobject result)     {         //result manipulated given conditions why anonymous function         //then return result of type myobject executemethoddelegate()         return result;     } 

so problem how recover event result , send main class how can retrieve , send result main class?

your sub class can expose gotpicked event contains myobject in eventargs , yoi van register in main class

main:

public main() {     sub.gotpicked += ongotpicked }  void sub_myclick(object sender, eventargs e) {        sub.executemethoddelegate();   //i have object sub available functions }  public void ongotpicked(object sender, subeventargs e) {     // myobject     var myobject = e.myobject; }  public class subeventargs : eventargs {     public subeventargs(myobject obj)     {           myobject = obj;     }      public readonly myobject myobject { get; set; } } 

sub:

public event eventhandler<subeventargs> gotpicked;  public void getpicked(myobject result) {      // stuff woth result             gotpicked(this, new subeventargs(result); 

Comments

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

thorough guide for profiling racket code -