簡體   English   中英

缺少標准屬性的自定義控件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM