请问外部类如何访问和修改WindowsForms的控件属性?
先有Form1.cs和other.cs,other.cs中有类other,other中的方法不能访问或者修改Form1里的控件比如button1的属性。请问如何解决?谢了。

解决方案 »

  1.   

    设成public,或者Form1创建other时候将button1传给other。
      

  2.   

    呵,把控件的声明protected改成public就行了不过如果你是在非界面线程的话,就需要做点其它的操作......
      

  3.   

    在同一程序中,也就是同一个进程,
    http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx#sec5
      

  4.   

    在不同的进程中,
    利用我们的新工具将 Spy++ 的功能传送给 Windows 窗体
    http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/issuesManagedSpy.mspx
      

  5.   

    internal,或着public应该就可以吧
      

  6.   

    // other.cs
    class Other : System.ComponentModel.INotifyPropertyChanged
    {
            private string str;
            public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;        public string Str
            {
                get { return str; }
                set { 
                    str = value;
                    OnPropertyChanged("Str");
                }
            }
            private void OnPropertyChanged(string propertyName)
            {
                if (PropertyChanged != null)
                    PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }        public void ChangeForm1TextBox()
            { 
                Random rnd = new Random();
                string str = "随机数:" + rnd.Next(100);
                this.Str = str;
            }
    }// Form1.cs
    public partial class Form1 : Form
    {
            Other other = new Other();
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                other.ChangeForm1TextBox();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                textBox1.DataBindings.Add("Text", other, "Str");
            }
    }