[英]Custom Control lacking standard properties
以下是通過繼承/擴展標准控件Timer創建的名為JobTimer的自定義控件。 目的:為了獲得名為JobID的自定義屬性,該屬性已添加到控件中。
public class JobTimer : System.Windows.Forms.Timer
{
private int IntJobID;
public int JobID
{
get{return IntJobID;}
set{IntJobID = value;}
}
}
這些控件是在運行時以編程方式創建的。 以下是執行此操作的代碼:
public static void CreateTimer(int JobID)
{
JobTimer ControlJobTimer = new JobTimer();
ControlJobTimer.Name = "JobTimer" + JobID.ToString(); //Error occurs here.
ControlJobTimer.Enabled = true;
ControlJobTimer.JobID = JobID;
ControlJobTimer.Interval = 30000;
ControlJobTimer.Tick += new EventHandler(JobTimer_Tick);
ControlJobTimer.Start();
}
我在這里面臨的問題是我無法為此控件“設置”標准屬性Timer.Name。
錯誤:NameSpace.JobTimer不包含“名稱”的定義,並且沒有發現擴展方法“名稱”接受類型為NameSpace.JobTimer的第一個參數(您是否缺少using指令或程序集引用?)![輸入圖像這里的描述] [1]
即使下面的代碼行應該將此控件的名稱設置為“ ControlJobTimer”,
JobTimer ControlJobTimer = new JobTimer();
我是否仍可以在運行時“重命名”控件? 據我所知,這對於標准控件是可行的,並且對於自定義控件也是應有的可能。
我的要求是,我希望能夠為在運行時創建的計時器控件設置命名約定。 請對此進行調查,讓我知道我所缺少的內容,以及是否有解決此問題的方法。
Windows窗體設計器在“屬性”窗口中顯示(名稱)時,控件本身沒有Name
屬性-設計器僅使用此屬性來命名保存對控件的引用的成員變量。
盡管可以說添加了Name屬性,但是沒有什么可以阻止的,盡管正如您所說的那樣,您已經具有JobId,以便代碼可以知道它是哪個計時器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.