2016-03-25 12 views
1

私はそれの上にラベルを貼る形をしています。 このラベルでは、ユーザーがプログラムを開くたびに、このラベルがPasteBinサイトに接続します。 (あなたが貼り付けることができるか、何でも入力して、最後にあなたが入力したものについてのリンクを作成することができるサイト) 今、私はフォームの上部にニュース速報を作成することができ、それは素晴らしい作品です。 しかし、これは一度だけ起こります。ここに私のコードを入れてみましょう:フォーム上部のニュースを打ち破る

private void Form1_Load(object sender, EventArgs e) 
{ 
    WebRequest.Create("http://pastebin.com/raw/vkABdKag"); 
    lblNews2.Text = new System.Net.WebClient().DownloadString("http://pastebin.com/raw/vkABdKag"); 
    lblNews2.ForeColor = System.Drawing.Color.White; 
} 

しかし、これは一度だけ起こります。 私はこのURLのテキストを変更しても、最後のテキストが表示されることを意味します。 プログラムは一度だけテキストをダウンロードし、フォームの上部に表示します。 これは私の質問です。 このコードをどのように置くことができますか、またはこのコードにどのコードを追加する必要がありますか?ユーザーがプログラムを開くたびに、このURLのテキストが変更されているかどうかチェックします。 これは、リフレッシュまたはリロードなどのコードですか? ご回答いただきありがとうございます。

string getNewsFrom(string url) 
{ 
    string content = new System.Net.WebClient().DownloadString(url); 
    return content; 
} 

次はForm上にツールボックスからTimerコンポーネントを引く:必要に応じて、あなたがそれを呼び出すことができるように

+0

各編集のために新しいURLをペーストビンで作成しませんか? – TZHX

+0

いいえ、私はそうは思わない。あなたがテキストのbinにあなたのテキストを編集する場合、私は新しいURLを作成するとは思わない。 –

+0

私が見るところでは、 "あなたがプログラムを開くたびに、このラベルはPasteBinサイトに接続します"というあなたのラベルはあなたのフォームではありません。そのフォームを開くと、フォームが要求をしています。ユーザー入力がラベルからテキストを変更したときにリクエストを行う場合は、変更されたラベルイベントにアタッチし、ロードメソッドからコードを送信する必要があります。 –

答えて

2

まず、別の関数にダウンロードコードを置きます。それをnewsTimerと呼んでください。 Intervalを好きな時間に設定します。

newsTimer.Interval = 5 * 60 * 1000; // set the timer to tick every 5 minutes 

ダブルクリックTimerコンポーネントとコード結果Tickイベント:

private void newsTimer_Tick(object sender, EventArgs e) 
{ 
    lblNews2.Text = getNewsFrom(yourUrl); 
} 

これは、あなたが使用したいURLを保持しているクラスレベルの変数yourUrlを前提としています。

希望する場合は、フォームにCheckBoxを追加し、newsListeningと名前を付けます。ダブルクリック、それはCheckedChangedイベントを作成し、このようにそれをコードに:

private void newsListening_CheckedChanged(object sender, EventArgs e) 
{ 
    newsTimer.Enabled = newsListening.Checked; 
    if (newsTimer.Enabled) newsTimer_Tick(null, null); do one download immediately! 
} 

あなたはタイマーがform_Loadで、あなたがそれStart()できるすべての時間を実行したい場合は、 CheckBoxを使用して、Timerで起動する場合は、newsListening_Checked = true;をloadイベントに入れてCheckedChangedイベントをトリガーしてください!

5分ごとに最新のコンテンツが更新され、タイマーを開始および停止できます。

WebClientを使用する場合、WebRequestは必要ありません。

関連する問題