2012-04-09 5 views
0

Ich versuche, ein Model-View-Presenter-Muster in C# Windows Forms zu implementieren. Ich habe verschiedene Methoden ausprobiert, habe dies aber nicht herausgefunden. Gibt es trotzdem eine Benutzereingabe von einem Textfeld, wenn der Benutzer auf das Textfeld klickt? Wenn nicht, was ist der typische Weg, um Daten an den Moderator weiterzugeben? Ich kann das on_text_changed Ereignis der Textbox verwenden, aber dann bin ich verwirrt, wie man die Daten validiert.So akzeptieren Sie Eingaben aus dem Textfeld

Antwort

0

Sie möchten für die Leaveevent hören. Das passiert, wenn das Textfeld den Fokus verliert; Danach können Sie Ihre Validierung durchführen.

1

Ich weiß, dass dieser Thread zu alt ist, aber immer noch.

public interface IProjectView 
{ 
    string textBoxText{get;} 
} 

es in Project implementieren

public class ProjectView : IProjectView 
{ 
    ProjectPresenter _presenter; 

    public ProjectView() 
    { 
     _presenter = new ProjectPresenter(this); 
    } 

    string textBoxText 
    { 
     get 
     { 
      // Do validation if you want 
      return textBox1.Text; 
     } 
    } 
} 


class ProjectPresenter 
{ 
    IProjectView _view; 
    public ProjectPresenter(IProjectView view) 
    { 
     _view = view; 
    } 

    public void AnyMethod() 
    { 
     // Access value of textbox as _view.txtTextBoxText 
    } 
} 

-Code nicht getestet, sollte aber gut funktionieren.

In Bezug auf die Validierung, während die Eigenschaft in ProjectView implementieren, führen Sie die Validierung vor dem Wert zurück.