The read-only property control.

image_pdfimage_print
   
 


using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;


public class TimerCounter : System.Windows.Forms.UserControl {
    private System.Windows.Forms.Timer timer1;
    private System.ComponentModel.IContainer components;
    private int fCounter = 0;
    public int Counter {
        get {
            return fCounter;
        }
    }
    public TimerCounter() {
        this.components = new System.ComponentModel.Container();
        this.timer1 = new System.Windows.Forms.Timer(this.components);
        this.timer1.Enabled = true;
        this.timer1.Interval = 1000;
        this.timer1.Tick += new System.EventHandler(this.OnTick);
        this.Name = "TimerCounter";
    }
    private void OnTick(object sender, System.EventArgs e) {
        fCounter++;
    }
}
public class Form1 : System.Windows.Forms.Form {
    private System.Windows.Forms.Label label1 = new System.Windows.Forms.Label();
    private System.Windows.Forms.Label CounterLabel;
    private System.Windows.Forms.Button Update;
    private System.ComponentModel.Container components = null;
    private TimerCounter counter;

    public Form1() {
        counter = new TimerCounter();
        this.CounterLabel = new System.Windows.Forms.Label();
        this.Update = new System.Windows.Forms.Button();
        this.SuspendLayout();
        this.label1.Location = new System.Drawing.Point(32, 24);
        this.label1.Size = new System.Drawing.Size(48, 23);
        this.label1.Text = "Counter: ";
        this.CounterLabel.Location = new System.Drawing.Point(96, 24);
        this.CounterLabel.Size = new System.Drawing.Size(32, 23);
        this.Update.Location = new System.Drawing.Point(80, 72);
        this.Update.Text = "Update";
        this.Update.Click += new System.EventHandler(this.Update_Click);
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(224, 133);
        this.Controls.AddRange(new System.Windows.Forms.Control[] {this.Update,this.CounterLabel,this.label1});
        this.ResumeLayout(false);
    }
    [STAThread]
    static void Main() {
        Application.Run(new Form1());
    }
    private void Update_Click(object sender, System.EventArgs e) {
        CounterLabel.Text = counter.Counter.ToString();
    }
}