A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马田杰 中级黑马   /  2013-1-26 10:26  /  1810 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 shdow2689 于 2013-1-27 10:56 编辑

现有两个Form窗体:Form1和Form2,希望将Form2中ListBox控件的选择值,传到Form1窗体的TextBox控件中并显示出来,使用两个方法都未实现:
第一种方法:Form1类中写一个方法"public void ChangeTextbox(string str);",然后在Form2的button_click事件中调用些方法:"xx.ChangeTextbox(listbox1.selecteditem.tostring())",结果Form1的TextBox控件的值并未实时改变。
第二种方法:将Form1中TextBox的Modifiers属性设为public,然后Form2的button_click事件中直接给它赋值,但也未实现。
请问这是怎么回事,该怎么解决此问题?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

4 个回复

倒序浏览
LisBox的窗体:
private void button1_Click(object sender, EventArgs e)
{
         string value = listBox1.SelectedItem.ToString();
         Form2 frm = new Form2(value );
         frm.ShowDialog();
                        
}

TextBox的窗体:
public Form2(string value )
{
        InitializeComponent();
        textBox1.Text = value ;
}

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
谢谢,已经解决,showDialog()是模式窗口,和show有什么区别呢,用了ShowDialog就没问题了

点评

如果已经解决,可将主题贴类型标为已经解决。  发表于 2013-1-26 23:42
回复 使用道具 举报
楼主可以用一个静态变量存储,public   static   text;  这样两个窗口都能使用了,
show()方法是:打开窗口form2后,form1程序可以继续往下执行,这里就可以点很多次按钮,创建很多个form2 ,这样不太好,
showdialog()方法是:打开一个窗口后,等窗口关闭后才会继续执行主程序,也就是form1,form2不关闭的话,form1中就一至停留在了,showdialog方法。
你可以调试下,看下他们的区别
回复 使用道具 举报
多谢,看来自己还要更加努力打基础啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马