很简单啊~~A中创建B的实例时接受参数,B公开选择后的结果对象,B关闭后直接在A代码中里取出B的这个结果

解决方案 »

  1.   

    http://developer.51cto.com/art/200909/148825.htm
    看看吧
      

  2.   

    http://www.cnblogs.com/jiahaipeng/archive/2008/10/23/1317430.html
      

  3.   

    打开b窗体的时候将a窗体的句柄带过去,在b窗体上直接操作a窗体内的业务逻辑
      

  4.   

    A窗体:
    FormMain formMain = new FormMain(UserId);
                        formMain.Login = this;
                        formMain.Show();
    B窗体:
    int userId = 0;
            public FormMain(int UserId)
            {
                InitializeComponent();
                userId = UserId;
            }
            private FormLogin login;        public FormLogin Login
            {
                get { return login; }
                set { login = value; }
            }
    窗体传值。。
      

  5.   

    在列表的事件中NEW一个A的实例,且重写A的构造函数带参的,比如你用的是列表的当值改变的事件,当选择一个值,将这个值带到A 的实例而值就传过去了。
      

  6.   

    A 中textbox1_keydown()
    {
    //检查当按下的是回车时
    FormB b=new  Formb();
    if(b.ShowDilag()==DilagRsult.OK)
    {
    //将b的值写到文本框
    textbox1.text=b.aaa
    }
    }b中
    public static string aaa="";//当list选中时
    aaa=list1.text;
    this.DilagRsult=dilagRsult.OK;
      

  7.   

        public delegate void SelectedItemEventHandler(string value);    public partial class FormA : Form
        {               public FormA()
            {
                InitializeComponent();
            }        private void textBox1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    FormB frm = new FormB();
                    frm.OnSelected += delegate(string value)
                                        {
                                            this.textBox1.Text = value;
                                        };
                    frm.ShowDialog();
                }
            }
        }
        public partial class FormB : Form
        {
            public SelectedItemEventHandler OnSelected = null;        public FormB()
            {
                InitializeComponent();
            }        private void listBox1_DoubleClick(object sender, EventArgs e)
            {
                if (this.listBox1.SelectedItem != null
                    && this.OnSelected != null)
                {
                    this.OnSelected(this.listBox1.SelectedItem.ToString());
                    this.Close();
                }
            }
        }
      

  8.   

    其实你这个问题描述的就是窗体之间的传值问题。。示例代码如下:
    A窗体:textbox
    B窗体: combox首先呢,判断textbox是否为空
    定义一个属性
    private static string strText;
    public static string StrText
    {
        get{return strText;}
        set{strText = value}
    }
    if(textbox.text.trim() !="")
    {
      textbox回车事件(你判断下你按下的是否为回车键)
      {
         //这个你可以在A窗体放置一个按钮,设置窗体的AccetpButton为该按钮(就可以实现回车触发事件)
         this.StrText = this.textbox.text.trim();
      }
    }在B窗体加载的时候就可以根据上面的StrText 值来做相应的操作同样的 在B窗体中用相同的思路
    思路:
    1、在B窗体中,也使用属性(参照上面)
       private static string strText1;
      public ......... StrText1
      {
      }
    2、将选中列表框的值赋给属性 this.combobox.selecttext = StrText1;3、弹出A窗体 A.show();4、在加载A窗体时,把StrText1值赋给A窗体的textbox 
       在A窗体中 this.textbox.text = B.StrText1;大致的代码应该可以实现你的功能...
    参考下
      

  9.   

    简单的事情搞复杂了。楼主可以使用Form的showDialog()方法FormA中的代码如下
     private void textBox_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == Keys.Enter)
                {
                    FormB fb = new FormB();
                    if(fb.ShowDialog() == DialogResult.Ok)
                    {
                        textBox.Text = fb.ResultValue;   
                    }
                }
            }
    FormB中的代码如下:        private string _resultValue="";
            public string ResultValue
            {
                get { return _resultValue;}
                set { _resultValue = value;}
            }        private void listBox_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == Keys.Enter)
                {
                    //判断选择是否符合要求(如 有没有选中)
                    //code
                    //                //判断结束后 将值赋给_resultValue
                    _resultValue="需要传递给FormA的值";                //最后设置DialogResult
                    this.DialogResult=DialogResult.Ok;
                }
            }        //如果有“取消”按钮或者“取消”方法的话
             //只需要在方法里面写this.DialogResult = DialogResult.Cancel;即可
      

  10.   

     FormB fb = new FormB();
    fb.strvalue = this.textbox1.text;
                    if(fb.ShowDialog() == DialogResult.Ok)
                    {
                        this.textbox1.Text = fb.strvalue;  
                    }