2017-10-08 12 views
0

私は数日間この作業を進めています。そして今私には別の問題があります。だから、私はzzz.csでこれを持っている:新しいフォームを表示できません

private void button3_Click_1(object sender, EventArgs e) 
{ 
    scraper zzz = new scraper(); 
    zzz.Show(); 
} 

それがscraper.csと呼ばれ、他のWindowsフォームを開きたいdoesntの1つの理由。私のzzz.csscraper.csは同じ名前空間を持っています。これはどうしたらうまくいかないのでしょうか?そして修正は何ですか?

EDIT:

問題が修正されましたが、今login.csから、それはzzz.cs.に行くdoesntの私のコードは次のとおりです。

MessageBox.Show("You are logged in successfully"); 
    zzz zzz = new zzz(); 
    zzz.Show(); 
    this.Close(); 

しかし、それは今動作しません。それを修正するには?それが働く前に、今はもう...

私はもう一度試しました。 zzz.csが開きます。そしてdirecltyコードでクローズ:ここで0は再び私zzz.csです:

using System; 
using System.Collections.Generic; 
using System.Windows.Forms; 

namespace Login 
{ 
    public partial class zzz : Form 
    { 
     public static List<string> proxies { get; set; } = new List<string>(); 
     public static List<string> Links { get; set; } = new List<string>(); 
     public static string path; 
     public zzz() 
     { 
      InitializeComponent(); 
     } 
     private void button1_Click_1(object sender, EventArgs e) 
     { 
      Logs.Items.Clear(); 
      if (radioButton1.Checked == true) 
      { 
       bool useproxies = true; 
       Logs.Items.Add("Using proxies enabled!"); 
       scrape(); 
      } 
      else 
      { 
       bool useproxies = false; 
       Logs.Items.Add("Using proxies disabled!"); 
      } 
      void scrape() 
      { 
       int omg = proxyscraper(); 
      } 
     } 

     private void groupBox1_Enter(object sender, EventArgs e) 
     { 

     } 

     public int proxyscraper() 
     { 
      return 0; 
     } 

     private void button3_Click_1(object sender, EventArgs e) 
     { 
      //Form1 aaa = new Form1(); 
      //aaa.Show(); 
     } 
    } 
} 

そして、ここでは私のinlogin.csです:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.IO; 
using System.Linq; 
using System.Net; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Login 
{ 
    public partial class MainForm : Form 
    { 
     public MainForm() 
     { 
      InitializeComponent(); 

     } 
     //Enter code here for your version of username and userpassword 
     Login login = new Login("admin", "1234"); 


     private void button1_Click(object sender, EventArgs e) 
     { 
      //define local variables from the user inputs 
      string user = nametxtbox.Text; 
      string pass = pwdtxtbox.Text; 
      //check if eligible to be logged in 

      string login(string lol,string lel) 
      { 
       try 
       { 
        var request = (HttpWebRequest)WebRequest.Create("http://SNIP/mama.php?user=" + lol + "&password=" + lel); 
        var response = (HttpWebResponse)request.GetResponse(); 
        string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 
        return responseString; 
       } 
       catch 
       { 
        string responseString = "NO"; 
        return responseString; 
       } 
      } 
      string wat = "YES"; 
      if (login(user, pass) == wat) 
      { 
       MessageBox.Show("You are logged in successfully"); 
       zzz aaa = new zzz(); 
       aaa.Show(); 
       this.Close(); 
      } 
      else 
      { 
       //show default login error message 
       MessageBox.Show("Login Error!"); 
      } 
     } 

     private void label2_Click(object sender, EventArgs e) 
     { 

     } 

     private void label1_Click(object sender, EventArgs e) 
     { 

     } 
    } 
} 

Howwww ....

+0

1を見てみる必要があります。 2. WinForms? – Richard

+0

Click-Methodにブレークポイントを設定してデバッグしようとしましたか?あなたはイベントをキャッチしましたか?クラスのコードを教えてください。 –

+0

[チェックリスト](https://meta.stackoverflow.com/questions/260648)を読んで、質問に[編集]を適用してください。関連性:[mcve] – rene

答えて

1

はあなたをしましたあなたのコードをコンパイルしようとしましたか?それはしてはいけません。

なぜなら、ファイル名itselveとクラス名を混ぜているからです。これは別の名前です。

クラスのインスタンスを作成する必要があります。この場合は、そのコンストラクタを使用してフォームを作成します。

private void button3_Click_1(object sender, EventArgs e) 
{ 
    Form1 aaa = new Form1() 
    aaa.Show(); 
} 

また、あなたのクラスForm1ScrapperへとあなたEDIT答える

private void button3_Click_1(object sender, EventArgs e) 
{ 
    Scrapper aaa = new Scrapper() 
    aaa.Show(); 
} 

を呼び出す名前を変更することができますだけの非モーダルダイアログを開きますあなたはzzz.Show()を使用している

zzzおよび は、th内の次のメソッドを実行します。 eメソッドをクリックします。 this.Close();です。現在のログインフォームが閉じられ、zzzも閉じます。 zzzを開くにはzzz.ShowDialog();を使用する必要があります。 sxrapperダイアログが閉じられるまで、ログインダイアログは「待機中」になります。その後、this.Close();を呼び出してログイン画面を閉じます。

アプリケーションフローを変更することをお勧めします。 最初にログイン画面を開き、スクラップを開くよりも成功して終了します。それはまだ動作しない場合は

static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 

    var loginForm = new YourLoginDialog(); 
    var result = YourLoginDialog.ShowDialog(); 
    if (result == DialogResult.Yes) 
    { 
     Application.Run(new Scrapper()); 
    } 
    else 
    { 
     MessageBox.Show("Login failed"); 
    } 
} 

例として、あなたはにProgram.csファイル内のあなたのProgramクラスであなたのMain方法を変更することができます

チェックをごbutton3_Click_1場合button3に配線されています。 これを行う方法はたくさんありますが、一般的な方法はVisual StudioのプロパティウィンドウF4を押してbutton3を選択し、bolt /イベントタブを選択し、button3_Click_1メソッドをクリックします。
または、上記のコメントから、あなたの質問に答えるInitializeComponent();

this.button3.Click += new System.EventHandler(this.button3_Click_1); 

のコールの後、あなたのコンストラクタに、この次の行を追加:

スクレーパーは、Windowsフォームではそれを見つけるためにどのようにIDKの

ScrapperForm1)クラスはを継承しますクラス定義で: Formのためにがあります。

public partial class Form1 : Form 
{ 
    // ... 
} 

たぶん、あなたは `scraper`の定義は何Classes and Structs (C# Programming Guide)

+0

ああありがとう!私は再び投稿を編集しました。今度はinlogからzzzに動かないので... –

+0

@Justanotheryoutuber:私の編集が表示されているかどうかを確認したい。 –

関連する問題