none
kde robim chybu, problem s delegatom

    Dotaz

  • namespace Test_Conection
    {
    public partial class HlavneOkno : Form
      {
    	  public delegate void NetworkAddressChangedEventHandler(object sender, StavPripojenia e);
        NetworkAddressChangedEventHandler networkChanged;
    		//
    		// ...
    		//
        public HlavneOkno()
        {
    		networkChanged = new NetworkAddressChangedEventHandler(ChyboveHlasenie);
    		NetworkChange.NetworkAddressChanged += new Test_Conection.HlavneOkno.NetworkAddressChangedEventHandler(networkChanged)
    		//
    		// ...
    		//
    		}	
    		public void ChyboveHlasenie(object sender, EventArgs e)
        {
          notifyIcon1.ShowBalloonTip(2000, "Parada", "Super", ToolTipIcon.Info);
        }		
    	}
    }
    
    namespace Test_Conection
    {		
    public class StavPripojenia : EventArgs
    {
      public StavPripojenia()
      {
      		//
    		// ...
    		//
        //Spracovanie IPcky
    		return chyba;
      }
    }
    }
    
    7. září 2010 12:15

Odpovědi

  • Zdravím, máte v tom drobet nejasno. Vy nevytváříte ani event, ani delegáta. Vy máte pouze přiřadit k eventu Vaši metodu.

    Takže v tom prvním dotazu by mělo být toto:

    NetworkChange.NetworkAddressChanged += new Test_Conection.HlavneOkno.NetworkAddressChangedEventHandler(ChyboveHlasenie);

    Pak by to mělo fungovat.

     

    • Označen jako odpověď skorec1 5. října 2010 0:14
    16. září 2010 12:43

Všechny reakce

  • skusal som nejak poupravovat ten kod co som mal, v pohode mi to skompiluje ale nereaguje mi to, moze sa mi niekto na to pozriet?
    prgram ma zareagovat na zmenu IPcky a malo by vypisat tuto metodu ChyboveHlasenie alebo tuto NetworkChange_NetworkAddressChanged

    a ani jedna nereaguje...

    namespace Test_Conection
    {
    public partial class HlavneOkno : Form
      {
       //
       // ...
       //
        public HlavneOkno()
        {
       
       NetworkStatus _networkStatus = new NetworkStatus();
        NetworkStatus.NetworkAddressChanged += new NetworkStatus.NetworkAddressChangedEventHandler(ChyboveHlasenie);
       //
       // ...
       //
       }  
       public void ChyboveHlasenie(object sender, EventArgs e)
        {
          notifyIcon1.ShowBalloonTip(2000, "Parada", "Super", ToolTipIcon.Info);
        }   
      }
    }   
       
       
    namespace Test_Conection
    {   
    public class NetworkStatus
    {
      public delegate void NetworkAddressChangedEventHandler(Object sender, EventArgs e);
    
      private NetworkAddressChangedEventHandler networkChanged_1;  
      
      public static event NetworkAddressChangedEventHandler NetworkAddressChanged;
      
      public NetworkStatus()
      {
          networkChanged_1 = new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
          NetworkStatus.NetworkAddressChanged += networkChanged_1;
         //
       // ...
       //
        //Spracovanie IPcky
       return chyba;
      }
      
      private void NetworkChange_NetworkAddressChanged(object sender, EventArgs e)
      {
          Console.WriteLine("je to super!!!");
          this.DetermineNetworkStatus();
          Console.WriteLine("je to super!!!");
      }
    }
    }
    

     

    http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkchange.networkaddresschanged.aspx

    http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkaddresschangedeventhandler.aspx?ppud=4

    8. září 2010 18:35
  • Zdravím, máte v tom drobet nejasno. Vy nevytváříte ani event, ani delegáta. Vy máte pouze přiřadit k eventu Vaši metodu.

    Takže v tom prvním dotazu by mělo být toto:

    NetworkChange.NetworkAddressChanged += new Test_Conection.HlavneOkno.NetworkAddressChangedEventHandler(ChyboveHlasenie);

    Pak by to mělo fungovat.

     

    • Označen jako odpověď skorec1 5. října 2010 0:14
    16. září 2010 12:43