首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

两个窗体之间传值的有关问题

2013-11-26 
两个窗体之间传值的问题图一窗口点击圈中的按钮,打开图二的窗口.问题:如何在图二窗口当按下确定按钮,将图

两个窗体之间传值的问题
两个窗体之间传值的有关问题
两个窗体之间传值的有关问题

图一窗口点击圈中的按钮,打开图二的窗口.
问题:如何在图二窗口当按下确定按钮,将图二的textbox内容传递到图一的textbox, 思路是有,但是窗体之间传递没弄懂 ,谢谢!
[解决办法]
你可以用委托,在第二个窗台里面,实现第一个窗台里面定义的委托;或者你用单例模式做数据存储及传递。
[解决办法]


 public partial class ShowInsert : Form
    {
        public ShowInsert()
        {
            InitializeComponent();
        }

        private BtnType btnSelectType;
        /// <summary>
        /// 
        /// </summary>
        public BtnType BtnSelectType
        {
            get { return btnSelectType; }
            set { btnSelectType = value; }
        }

        private string listTeShuYaoQiu = string.Empty;
        /// <summary>
        /// 特殊要求
        /// </summary>
        public string ListTeShuYaoQiu
        {
            get { return listTeShuYaoQiu; }
            set { listTeShuYaoQiu = value; }
        }

        private string listBiaoJiHaoMa = string.Empty;
        /// <summary>
        /// 标记号码
        /// </summary>
        public string ListBiaoJiHaoMa
        {
            get { return listBiaoJiHaoMa; }
            set { listBiaoJiHaoMa = value; }
        }
        /// <summary>
        /// 清空
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnClear_Click(object sender, EventArgs e)
        {
            rTxtInfo.Text = string.Empty;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (BtnSelectType == BtnType.BtnBiaoJiHaoMa) 
            {
                ListBiaoJiHaoMa = rTxtInfo.Text.Replace("\n", ",");
            }
            else if (BtnSelectType == BtnType.BtnTeShuYaoQiu) 
            {
                ListTeShuYaoQiu = rTxtInfo.Text;
            }
            this.DialogResult = DialogResult.OK;


        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        /// <summary>
        /// 窗体初始化
        /// </summary>
        private void Init_Load() 
        {
            if (BtnSelectType == BtnType.BtnTeShuYaoQiu) 
            {
                rTxtInfo.Text =  ListTeShuYaoQiu;
                this.Text = "特殊要求";
            }
            else if (BtnSelectType == BtnType.BtnBiaoJiHaoMa) 
            {
                if (ListBiaoJiHaoMa.IndexOf(",") > -1)
                {
                    rTxtInfo.Text = ListBiaoJiHaoMa.Replace(",", "\n"); 
                }
                this.Text = "标记号码";
            }
        }
        /// <summary>
        /// 窗体加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ShowInsert_Load(object sender, EventArgs e)
        {
            Init_Load();
        }
    }
}


[解决办法]
这么麻烦干嘛啊!
根据窗体二的DialogResult 来判断是否需要把查询条件返回就OK了
窗体二定义一个全局
Public string Condition
{
get{return txt.text.Trim();}//txt是你窗体二查询条件控件。
}
窗体二确定按钮中返回:DialogResult = System.Windows.Forms.DialogResult.OK;

窗体一种判断如果返回的是OK,那么直接用窗体二的实例.Condition就拿到你要的条件了!

[解决办法]

定义一个静态类  
//public static class common
{
  public static string content;
}
//第二个窗体中 
common.content=textBox1.text;

//第一个窗体中
 textBox.text=common.content;

[解决办法]
http://www.cnblogs.com/cosoft/archive/2011/08/08/2130659.html

[解决办法]
web做多了吧,winform不存在传值问题。都在内存里,控制访问权限就行了(public)。问题是要怎么找到相应的对象。
[解决办法]
http://blog.csdn.net/yuekunge/article/details/9171301
[解决办法]
在窗体2中实例化窗体1类,就可以访问窗体1中的属性了。这位同学应该是GIS专业的吧

热点排行