C#中Textbox如何获取改变后的值?

f410471717 2012-06-06 02:45:25
在事件中改变
private void Form1_TextChanged(object sender, EventArgs e)
{
string nnn = Form1.ActiveForm.Text.ToString();
this.Textbox.Text = nnn;
}
然后想在这个函数取得
public void Bind(string strsql)
{
string nnn = this.Textbox.Text.ToString();
}
结果在这边的时候,Textbox还是空值
private void Form1_Load(object sender, EventArgs e)
{
this.Bind(strsql);
}
怎么才能得到改变后的值呀?或者怎么改变这函数执行顺序?把changed放在lord里也不行。
...全文
992 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
f410471717 2012-06-06
  • 打赏
  • 举报
回复
把nnn设成public static string nnn = Form1.ActiveForm.Text.ToString()
text还是没变。Textbox的值我是用登录窗口给它的,登陆成功后跳出的新窗口名字和Textbox.text都改变了,但是获取改变后的值一直不是我想要的值。
魔女小丽 2012-06-06
  • 打赏
  • 举报
回复
你的这个TextChanged事件,不应该是Form的,应该是TextBox的吧,我也是初学者,希望对你有帮助哈
f410471717 2012-06-06
  • 打赏
  • 举报
回复
Form1.ActiveForm.Text一定要用,Textbox还是取不出来,这个Textbox是toolstripTextbox,在changed事件里调用bind也不行啊……
__天涯寻梦 2012-06-06
  • 打赏
  • 举报
回复
private void Form1_TextChanged(object sender, EventArgs e)
{
string nnn = Form1.ActiveForm.Text.ToString();
this.Textbox.Text = nnn;
}

你确定要用 Form1.ActiveForm.Text 属性吗,既然是 TextChanged 事件,取 this.Text 也可以啊
你试下不注册 TextChanged 事件,override OnTextChanged 方法,把 Form1_TextChanged 改成如下方法
protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
string nnn = this.Text.ToString();
this.Textbox.Text = nnn;
}
bdmh 2012-06-06
  • 打赏
  • 举报
回复
Form1_Load时,text的内容应该没有呢,你在Form1_TextChanged中调用Bind

你现在TextChanged事件中有 this.Textbox.Text = nnn;,这可能引起死循环

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧