? ?for (int i = 0; i < 8; i++)??????????? {??????????????? Label a = new Label();??????????????? a.Width = 50;??????????????? a.Location =new System.Drawing.Point(20,i*20);?????????????? ??????????? }
我做了一個(gè)ping服務(wù)器的軟件,每一臺(tái)服務(wù)器的ip我啟動(dòng)一個(gè)線程去ping 然后ping返回的響應(yīng)時(shí)間作為 lable的長(zhǎng)度? ,我可以生成一次清空一次 ,但這樣我覺得很浪費(fèi) 每次都要 new一個(gè)label,我覺得服務(wù)器比如說5個(gè)那個(gè)就有5個(gè)label對(duì)應(yīng),我精確定位沒個(gè)label就改變其長(zhǎng)度就可以了,但是問題自動(dòng)生成的lanbel該如何獲取他們的 名字呢 比如上面的a又不能用i來作為label的名字,有誰(shuí)有思路嗎?下面是代碼
?for (int i = 1; i < 4; i++)??????????? {??????????????? ParameterizedThreadStart ts = new ParameterizedThreadStart(new cl(Calculate));??????????????? Thread td = new Thread(ts);??????????????? MyThreadParameter paramter = new MyThreadParameter("www.baidu.com", i.ToString());?????????????? ??????????????? td.Start(paramter);??????????? }?????????//四個(gè)線程啟動(dòng)
?public void Calculate(object ms)??????? {??????????? MyThreadParameter parameter = ms as MyThreadParameter;??????????? while (true)??????????? {????????????????????????????????? ??????????????? int a = ping(parameter.Interval);//這個(gè)是傳遞過來的IP??????????????? //this.BeginInvoke(new o(other));? //寫到ping后再清空groupbox,因?yàn)閜ing會(huì)延遲返回值。如果先清空groupbox會(huì)造成ping的這段時(shí)間label沒有顯示??????????????? this.BeginInvoke(new changeText(CalcFinished), a.ToString(), parameter.LoopCount);??????????????? Thread.Sleep(2000);??????????? }??????? }
//根據(jù)每個(gè)IP的響應(yīng)時(shí)間 做label的長(zhǎng)度
?public void CalcFinished(string result, string id)??????? {??????????? if (this.InvokeRequired)??????????? {??????????????? this.BeginInvoke(new changeText(CalcFinished), result);??????????? }??????????? else??????????? {??????????????? //this.groupBox1.Controls.Clear();??????????????? Label textBox1 = new Label();??????????????? textBox1.BackColor = System.Drawing.Color.Red;??????????????? textBox1.Location = new System.Drawing.Point(20, Convert.ToInt32(id)*40);??????????????? textBox1.Text = result;??????????????? textBox1.Width = Convert.ToInt32(result) / 10;??????????????? this.groupBox1.Controls.Add(textBox1);??????????? }??????? }
?
?
軟件界面就是
www.baidu.com??? label
www.....?????????????? label
www............?????? label
label 如上每?jī)擅雙ing一次返回響應(yīng)時(shí)間作為label的長(zhǎng)度更新前面服務(wù)器對(duì)應(yīng)的lable
如我上面縮寫的一次只能顯示一個(gè)label 因?yàn)槲乙蹇誫roupbox來顯示新的label? 如果我有l(wèi)able的name我就直接改變他的長(zhǎng)度? 而不用去清空 再new 了
//以上代碼是部分代碼? 還有許多命名不正確的 以及多余沒用的大家不用管,我復(fù)制過來的,改了很多次我沒刪 能成功運(yùn)行的 看著不舒服而已
- 2 回答
- 0 關(guān)注
- 430 瀏覽
添加回答
舉報(bào)
0/150
提交
取消