台灣最大程式設計社群網站
線上人數
1362
 
會員總數:242749
討論主題:187704
歡迎您免費加入會員
討論區列表 >> C# >> Tag的例外狀況
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Tag的例外狀況
價值 : 50 QP  點閱數:262 回應數:1

樓主

小天
門外漢
0 2
20 3
發送站內信

小弟不才,請各位大大幫忙:D
小弟寫了一隻根據螢幕大小自動調整表單與元件的code,並寫了兩個版本的程式:測試用的程式 & 正式用的程式

今天將w7透過升級檔變成W10後正式用程式的Tag一直顯示值為NULL,但測試用的完全正常
兩者的code是一樣的

如圖是狀況


code如下

全域變數
private float X;//當前窗體的寬度
private float Y;//當前窗體的高度

LOAD事件
X = this.Width;
Y = this.Height;
SetTag(this);

Resize
float newx = (this.Width) / X;
float newy = (this.Height) / Y;
SetControls(newx, newy, this);


private void SetTag(Control cons)
{
foreach (Control con in cons.Controls)
{
con.Tag = con.Width + ":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;
if (con.Controls.Count > 0)
SetTag(con);
}
}

private void SetControls(float newx, float newy, Control cons)
{

foreach (Control con in cons.Controls)
{

string[] mytag = con.Tag.ToString().Split(new char[] { ':' });
float a = System.Convert.ToSingle(mytag[0]) * newx;
con.Width = (int)a;
a = System.Convert.ToSingle(mytag[1]) * newy;
con.Height = (int)(a);
a = System.Convert.ToSingle(mytag[2]) * newx;
con.Left = (int)(a);
a = System.Convert.ToSingle(mytag[3]) * newy;
con.Top = (int)(a);
Single currentSize = System.Convert.ToSingle(mytag[4]) * newy;
con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
if (con.Controls.Count > 0)
{
SetControls(newx, newy, con);
}
}
}

搜尋相關Tags的文章: [ C# ] , [ Tag ] , [ 等比例 ] , [ 放大縮小 ] ,
本篇文章發表於2017-12-08 16:08
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

小天
檢舉此回應
將整個專案搬移到 另一台W7電腦後就正常了

目前只有原本W10的電腦無法啟動~~求救
本篇文章回覆於2017-12-08 17:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.