??
引用textbox:项目.窗体名称.textbox.text

解决方案 »

  1.   

    运用javascript
    Response.Write("<script language=javascript>\n");
    Response.Write("window.operner.MainWindowFormName.textboxOfMainWindow.value = " + textbox.text + ";\n");
    Response.Write("</script>");
      

  2.   

    我的意思就是说:用主窗体(a)的按钮启动另外一个窗体(b),用户从b的一个textbox中录入文本,确认后,关闭b,回到a,此时a中的一个textbox已经得到用户输入的文本。要求b(用show方法而不是showdialog方法)打开时a隐藏,而a不能close,因为上面可能有数据
      

  3.   

    在主視窗 (a) 設定一個全域靜態變數,如 public static string mstrVar;在另一個窗口可以直接設定主窗口 (a) 的值,例(a) Class 名稱.mstrVar = textbox.text
      

  4.   

    两种方法:
    第一种:将第二个窗口中的TextBox定义为public,从第一个窗口中直接b.textbox.text读
    第二种:在第二个窗口中定义一个public型的变量,然后第二个窗口关闭时将textbox中的内容读到变量中。第一个窗口使用定义的public变量
      

  5.   

    两种方法:
    第一种:将第二个窗口中的TextBox定义为public,从第一个窗口中直接b.textbox.text读
    第二种:在第二个窗口中定义一个public型的变量,然后第二个窗口关闭时将textbox中的内容读到变量中。第一个窗口使用定义的public变量
      

  6.   

    你的要求是不行的
    因为Show和ShowDialog的区别在于模式
    ShowDialog在莫某种意义上讲一个消息等待循环
    他屏弊了主窗口的消息,此时你选不到主窗口
    所以主窗口的消息停止在ShowDialog这一行
    如果用Show的话
    只是一个普通窗口
    主窗口仍然可以响应
    比如说
    这样一个过程TestForm myFrom=new TestForm();
    myForm.Show;
    myForm.TextBox1.Text="Test";
    MessageBox.Show(myForm.TextBox1.Text;);
    这时程序在执行完myForm.Show;立刻执行
    myForm.TextBox1.Text="Test";
    MessageBox.Show(myForm.TextBox1.Text;);
    所以你会看到一个消息框告诉你TextBox1的值
    当myFrom关闭时
    会调用自身的Destory
    如果用 ShowDialog
    TestForm myFrom=new TestForm();
    myForm.ShowDialog;
    myForm.TextBox1.Text="Test";
    MessageBox.Show(myForm.TextBox1.Text;);
    如果用ShowDialog
    此时myForm成为模式窗口
    主窗口不再响应消息
    程序停留在myForm.ShowDialog;
    当关闭myForm之后
    myForm没有立即Destory
    而在在这个过程结束之后
    即离开myFrom所存在的域前进行Destory所以你只能用ShowDialog其实你也可以用其它的方法
    比如说myForm在关闭之前向主窗口发消息
    或调用其函数进行传值都可以
    不过就麻烦了
      

  7.   

    天哪,难道一定要public,这样跟vb6.0有什么分别嘛我想应该在b中引用a的类名,可是不知道怎么弄高手哪去了
      

  8.   

    你说的好像是show和showdialog的区别,但是并没有回答我的问题呀能不能a启动b的时候,给b一个自身的类标识(如果是C++应该是指针),然后在b中就可以引用主窗体了,这样具体应该怎么样实现呢?你是原来北航的王磊么?怎么给分?我想给你分,对了我给你分了是不是自己就没有分了?我刚来
      

  9.   

    可以設為屬性,用 set/get 存取變數例如:private static string mstrVar;public static string Var
    {
        set { mstrVar = value;}
    }必須設成靜態變數才能在第二個窗口直接設定主窗口的值。
      

  10.   

    终于成功了,可以这样实现
    1:新建一个Window工程
    2:添加一个窗口Form2
    3:在Form1里加一个TextBox1,和一个按钮Button1,在Form2里面增加一个TextBox2
    4:在Form1里添加一个函数:
    public void CopyText(string strX)
    {
    this.textBox1.Text=strX;
    }
    5:在Form2里面添加一个Form1对象变量
    private Form1 frm1;
    6:改写Form2的构造函数Form2()为
    public Form2(Form1 sender)
    {
    InitializeComponent();
    frm1=sender;
    }
    7:将下面一句加入Form2的textBox2_TextChanged事件函数
    frm1.CopyText (textBox1.Text);
    8:将下面一句加入Form2_Closing事件函数
    frm1.Show();
    9:将下面几句加入Form1的Button1_Click事件函数
    Form2 f2=new Form2(this );
    f2.Show();
    this.Hide();
    给分吧,兄弟
      

  11.   

    对不起,上面第7步
    应该为:frm1.CopyText (textBox2.Text);
      

  12.   

    太感谢了我已经给分了,看到了么?心得:类外不能修改的类成员变量,可以通过成员函数修改。通过重写form构造函数可以传递其他类引用,这恐怕是C#比VB6的最大好处