2017-01-16 9 views
1

私はWindowsのWebサイトをブロックしようとしていますが、子ブラウザプロジェクトのWebBrowserツールを使用してアプリケーションC#を作成しています。だから、私は事前に定義されたウェブサイトをブロックすることができますが、私は可能ではない配列に追加できるようにしたいと思います。だから私は別の方法があるかどうか疑問に思っていましたか?ここ配列を使ってC#WebBrowserのWebサイトをブロックする

private void webBrowser1_Navigating(object sender,WebBrowserNavigatingEventArgs e)   
{    
    String[] BlockList = new String[5]; //Array list stores the block list 

    BlockList[0] = "http://www.google.com"; 
    BlockList[1] = "http://www.google.co.uk"; 
    BlockList[2] = "http://www.gmail.com"; 
    BlockList[3] = "http://www.yahoo.com"; 
    BlockList[4] = "http://www.bing.com"; 

    for (int i = 0; i < BlockList.Length; i++) 
    { 
     if (e.Url.Equals(BlockList[i])) 
     { 
      e.Cancel = true; 
      MessageBox.Show("Booyaa Says No!", "NO NO NO", MessageBoxButtons.OK, MessageBoxIcon.Hand); // Block List Error Message 
     } 
    } 
} 
+2

ではなく、配列のリストを使用して行くことができる例

private List<string> BlockedUrls {get;set;} private void webBrowser1_Navigating(object sender,WebBrowserNavigatingEventArgs e) { if(BlockedUrls.Contains(e.Url.ToString()) { e.Cancel = true; MessageBox.Show("Booyaa Says No!", "NO NO NO", MessageBoxButtons.OK, MessageBoxIcon.Hand); // Block List Error Message } } } 

で、あなたも、リストをロードするいくつかの方法が必要です。それはフォームクラスのプロパティである必要があります、イベントハンドラのローカルではありません – pm100

+0

@ pm100は私に例を表示する可能性がありますか? –

答えて

2

は、あなたがして

// in constructor of form 
     BlockedURls = new List<string>(); 
     BlockedUrls.Add("www.blocked.com"); 
+0

@SharabeelShah 'List 'の代わりに 'HashSet 'を、 '.ToString()'の代わりに '.Host'を指定することをお勧めします。 – Slai

+0

@ pm100したがって、私はブロックするリストを実装しました。しかし、私は今どのようにフォームアプリケーション –

+0

の申し訳ありませんよ、私はあなたのためにすべてを書くことができないボタンを介してリストに追加するだろう。基本的には、どこかのリストからトップロードを取得し、それをメインテナインする方法をいくつか用意しておく必要があります。 Probzblyはフォームのロード時にファイルから読み込む必要があります – pm100

関連する問題