我有一个非常基础的网站,并且永远只包含一个整数。
但是整数会主动改变,我想添加到现有应用程序中以实时显示此整数。
-我尝试使用Timer和WebClient,但是如果将代码放在InitializeComponent()下,则永远不会加载该表单。
-同样,如果我将代码放在Form1_Load中,该窗体将永远不会加载。
-通过将代码置于button_click事件下,我成功地获得了要实时显示的数字,但是我希望此代码在表单加载后立即开始。
-此外,当第一次单击按钮时,第一个计时器序列上的标签将显示lat(不确定这是什么意思)
-按下按钮并启动计时器循环后,应用程序中断,该编号将正确更新,但您无法使用该应用程序的任何其他功能,无法移动窗口,无法关闭该应用程序,等等。
private void timer_Tick(object sender, EventArgs e)
{
Timer timer = (Timer)sender;
this.Visible = false;
timer.Stop();
this.Visible = true;
}
private void button1_Click(object sender, EventArgs e)
{
int c = 5;
while (c == 5)
{
using (var client = new WebClient())
{
var s = client.DownloadString(@"myURL.html");
var htmldoc2 = (IHTMLDocument2)new HTMLDocument();
htmldoc2.write(s);
var plainText = htmldoc2.body.outerText;
label1.Text = plainText;
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
timer.Interval = 5000;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
}
}
请帮我不知道我在做什么错
答案 0 :(得分:0)
如果有人遇到类似的问题,我设法使用以下代码解决了问题:
private void test()
{
using (var client = new WebClient())
{
var s = client.DownloadString(@"myURL.html");
var htmldoc2 = (IHTMLDocument2)new HTMLDocument();
htmldoc2.write(s);
var plainText = htmldoc2.body.outerText;
label1.Text = plainText;
}
}
int i = 1;
private void timer1_Tick(object sender, EventArgs e)
{
i += 1;
if (i >= 199)
{
i = 1;
timer1.Stop();
timer1.Start();
}
test();
}
timer1已从工具箱添加到winform中,并设置为启用,间隔为200