2017-01-15 9 views
0

テキストファイルを読み書きする簡単な「メモ帳」プログラムを作った。もう一つのすばらしいことは、保存されたファイルをダブルクリックするたびに自分のプログラムを開き、RichTextBox(「エリア」と呼ばれます)にコンテンツを書き込むことです。これが作ったものであることが起こる:C# - 別のフォームを使ってテキストファイルを開く(説明を読む)

私は

Application.Run(new Form1(args)); 

次の列に '引数' を追加Program.csのでは私ののForm1.cs私はこのコード

public Form1(string[] file) 
    { 
     InitializeComponent(); 
     area.DragDrop += new DragEventHandler(area_DragDrop); 
     area.AllowDrop = true; 
     if (file.Length != 0) 
      pathstart = file[0]; 

    } 

string pathstart = null; 
private void Form1_Load(object sender, EventArgs e) 
    { 
     if (pathstart != null) 
     { 
      area.LoadFile(pathstart, RichTextBoxStreamType.PlainText); 
     } 
    } 

に持っていますさて、それはすべて正常に動作しています。

NOW

私は、私は今ちょうどユーザ認証

、代わりにこの

Application.Run(new Form1(args)); 

のある新しいフォームを(プログラムの起動時にそれが開きます)を追加これを持つ

Application.Run(new identy(args)); 

ここでの問題は、保存したファイルをダブルクリックすると、認証後にRichTextBox( 'area')のコンテンツが開かないことです。

どのように私はこの作品を作ることができますか?

答えて

1

、アイデンティティのフォームを初期化し、Form1を初期化に戻ってはいけない:

Application.Run(new Form1(args)); 

その後、Form1のコンストラクタ内から、アイデンティティのフォームを作成し、表示し、次のように:

public Form1(string[] file) 
{ 
    InitializeComponent(); 
    area.DragDrop += new DragEventHandler(area_DragDrop); 
    area.AllowDrop = true; 

    identity ident = new identity(); 
    ident.ShowDialog(); 

    if (ident.Authenticated) 
    { 
     if (file.Length != 0) 
      pathstart = file[0]; 
    } 
} 

authenticatedというidentクラス/フォームにプロパティを作成し、資格情報を確認した後に値を適切に設定します。

public bool AuthenticatedOk { get; set; } 

public identity() 
{ 
    InitializeComponent(); 
    this.AuthenticatedOk = false; 
} 

private void checkDetails(string username, string password) 
{ 
    if (username=="bob" && password=="password") 
    { 
     this.AuthenticatedOk = true; 
    } 
} 
+0

うん、それはうまくいった。ありがとう:3 –

関連する問題