c# 在自定義類中控制form窗體中的控件 賦值或修改屬性


c# 在自定義類中控制form窗體中的控件 賦值或修改屬性

首先在 自定義類 的外面  聲明一個 委托模塊 

  //聲明一個委托模塊 用來改變form1 窗體中的控件值
    public delegate void setStatusDelegate(string requestInfo);//參數的類型可以根據自己的需求變更 int string 或其他
  

然后在類里面,新建一個委托模塊的實例

 //定義一個委托的實例方法 
        public static setStatusDelegate setStatusDelegate;

 

然后在其他函數中調用它,並把需要傳送的參數值 賦值給委托模塊的參數

 //調用委托 把requestInfo.body 放進委托里
                if (UnknowRequest.setStatusDelegate != null) { UnknowRequest.setStatusDelegate(requestInfo.Key);//把requestInfo.Key傳給了委托模塊的參數
                    UnknowRequest.setStatusDelegate(requestInfo.Body);//把requestInfo.Body傳給了委托模塊的參數
                    rstr += "key:"+ requestInfo.Key + ";body:"+ requestInfo.Body + ""; }

 

 我們還要在窗體函數中做相應的賦值處理

新建一個函數用來調用新建類中的委托,並接收委托的參數值,把值賦給控件,本例代碼中把值add到了listview中去

        //創建一個函數,用來調用委托 接收到的無法解析的數據
        private void getUnknowRequest() { //調用委托 並把委托中的值添加到listview //using SupperSocketDemo.Command; 別忘記引用
           UnknowRequest.setStatusDelegate = new setStatusDelegate((i) => { this.Invoke(new setStatusDelegate((requestInfo) => { this.lvlist.Items.Add("非命令數據 " + requestInfo.ToString() + "  "+DateTime.Now.ToString()+""); }), i); }); }

最后在窗體的load事件中調用一下這個函數,就可以了。

private void Form1_Load(object sender, EventArgs e) { //調用委托 獲取非命令數據的解析
 getUnknowRequest(); 
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM