2017-09-17 1 views
0

Ich bin sicher, dass es keine gute Praxis ist, so etwas zu tun, aber ich war einfach neugierig wenn es möglich ist ....Have Textfeld Ereignis in der verschiedenen Klassen

ich Visual Studio 2015 verwenden, aber versuchten Ich habe mehrere Fehler bei der Kompilierung erhalten (zu viele, die hochgeladen werden sollten) - aber im Wesentlichen war ich neugierig, ob Sie das _Leave() -Ereignis eines Textfelds in einer anderen Klasse haben können. So etwas wie die unten

namespace BlueGreenRed 
{ 
    public partial class Red : UserControl 
    { 
     //In this class I have a text box called txtName 
    } 
} 



namespace BlueGreenRed 
{ 
    class ReusableMethods 
    { 
     private void txtName_Leave(object sender, EventArgs e) 
     { 
      //Do something here 
     } 
    } 
} 
+1

wenn 'ReusableMethods' einen Verweis auf die Varianten' rot' Klasse, die Sie wollen, und 'txtName' öffentlich sichtbar ist, Sie können das Ereignis sicherlich verkabeln. Aber das scheint zu diesem Zeitpunkt einfach albern zu sein – Jonesopolis

+0

@Jonesopolis - Ich war neugierig, ob es möglich war. Ich bin mir sicher, dass es eine schreckliche Übung ist, das zu tun :) – BellHopByDayAmetuerCoderByNigh

Antwort

1

Sicher, dass Sie könnte dies tun:

public class Red 
{ 
    public TextBox TxtName {get; set; } 
} 

public static class ReusableMethods 
{ 
    public static void WireUp(Red red) 
    { 
     red.TxtName.Leave += txtName_Leave; 
    } 

    private static void txtName_Leave(object sender, EventArgs e) 
    { 
     //Do something here 
    } 
} 

//some other code 

var red1 = new Red() { TxtName = new TextBox() }; 
var red2 = new Red() { TxtName = new TextBox() }; 

ReusableMethods.WireUp(red1); 
ReusableMethods.WireUp(red2); 
Verwandte Themen