日期:2014-05-17  浏览次数:20827 次

自定义控件向主窗体传值后,窗体中的TextBox得到之后没有显示出来
我自定义了一个控件,操作完之后通过点击自定义控件上的一个按钮,将值传回给主窗体中的TextBox并显示出来。但是值传过去了,但是没有显示出来
主窗体中是:
 public string TextBox1
        {
            set
            {
                textBox1.Text = value;
                MessageBox.Show(textBox1.Text);
                textBox1.Refresh();
            }
        }

并且MessageBox弹出了应该显示的值,但是在窗体中的TextBox1没有显示
自定义控件是:
 
  Form1 form1 = new Form1();
            form1.TextBox1= toFormMessage;

怎么办?哪里有问题?希望各位高手帮帮小弟
C# 自定义控件 窗体传值

------解决方案--------------------
传值的位置写错了吧!            
form1.TextBox1= toFormMessage
Form1 form1 = new Form1(form1.TextBox1);


------解决方案--------------------
少年 Form1 form1 = new Form1(); 
有两个Form1对象了哦!!!
------解决方案--------------------
控件里面添加事件
public delegate void DataChangeEventDelegate(string data);
public event DataChangeEventDelegate DataChangeEvent;
在你的button1_Click计算完数据后触发事件 
并把计算获得的data值传给 DataChangeEvent(data);事件

然后在form的你所使用的控件里面找到DataChangeEvent事件 
添加事件触发方法
        private void DataChangeEvent(string data)
        {
            tbk1.Text = data;
        }
从而是form上的 tbk1控件获得数据
------解决方案--------------------
4楼说的是对的:
 Form1 form1 = new Form1();
 form1.TextBox1= toFormMessage;
这样form1又没有显示出来,它里面的TextBox当然是看不见的。
------解决方案--------------------
你在 自己定义的控件里写一个 委托 就是给 text赋值 之后调用委托
------解决方案--------------------
那你到底是什么问题,你标题上是说:
“窗体中的TextBox得到之后没有显示出来”
现在又说:
“我并不想再显示一个新窗体”
难道你的意思要TextBox脱离窗体自己显示出来?
------解决方案--------------------
思路有问题,你不应该在自定义空间里调用form1,应该在form1中调用自定义控件的方法,然后在form1中传值!