亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于winform循環生成控件的問題

關于winform循環生成控件的問題

九州編程 2018-12-07 01:12:16
? ?for (int i = 0; i < 8; i++)??????????? {??????????????? Label a = new Label();??????????????? a.Width = 50;??????????????? a.Location =new System.Drawing.Point(20,i*20);?????????????? ??????????? } 我做了一個ping服務器的軟件,每一臺服務器的ip我啟動一個線程去ping 然后ping返回的響應時間作為 lable的長度? ,我可以生成一次清空一次 ,但這樣我覺得很浪費 每次都要 new一個label,我覺得服務器比如說5個那個就有5個label對應,我精確定位沒個label就改變其長度就可以了,但是問題自動生成的lanbel該如何獲取他們的 名字呢 比如上面的a又不能用i來作為label的名字,有誰有思路嗎?下面是代碼 ?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);??????????? }?????????//四個線程啟動 ?public void Calculate(object ms)??????? {??????????? MyThreadParameter parameter = ms as MyThreadParameter;??????????? while (true)??????????? {????????????????????????????????? ??????????????? int a = ping(parameter.Interval);//這個是傳遞過來的IP??????????????? //this.BeginInvoke(new o(other));? //寫到ping后再清空groupbox,因為ping會延遲返回值。如果先清空groupbox會造成ping的這段時間label沒有顯示??????????????? this.BeginInvoke(new changeText(CalcFinished), a.ToString(), parameter.LoopCount);??????????????? Thread.Sleep(2000);??????????? }??????? } //根據每個IP的響應時間 做label的長度 ?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 如上每兩秒ping一次返回響應時間作為label的長度更新前面服務器對應的lable 如我上面縮寫的一次只能顯示一個label 因為我要清空groupbox來顯示新的label? 如果我有lable的name我就直接改變他的長度? 而不用去清空 再new 了 //以上代碼是部分代碼? 還有許多命名不正確的 以及多余沒用的大家不用管,我復制過來的,改了很多次我沒刪 能成功運行的 看著不舒服而已
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

label有name的可以循環查找控件然后 獲取name對比 ? 做出來了

查看完整回答
反對 回復 2019-01-21
  • 2 回答
  • 0 關注
  • 435 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號