自定义控件向主窗体传值后,窗体中的TextBox得到之后没有显示出来
我自定义了一个控件,操作完之后通过点击自定义控件上的一个按钮,将值传回给主窗体中的TextBox并显示出来。但是值传过去了,但是没有显示出来
主窗体中是:
public string TextBox1
{
set
{
textBox1.Text = value;
MessageBox.Show(textBox1.Text);
textBox1.Refresh();
}
}
并且MessageBox弹出了应该显示的值,但是在窗体中的TextBox1没有显示
自定义控件是:
Form1 form1 = new Form1();
form1.TextBox1= toFormMessage;
怎么办?哪里有问题?希望各位高手帮帮小弟
------解决方案--------------------传值的位置写错了吧!
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中传值!