VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 848|回复: 7

请教一个form问题???

[复制链接]

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-4 15:20:01 | 显示全部楼层 |阅读模式
我在主窗体上有个ComBox控件,在主窗体上使用showDialog方法show自定义的对话框,上面有textBox控件,我添完数据通过点"完成"按钮激活一个点击事件,关闭对话框的同时,调用主窗体上的一个公共方法,该方法主要是调用ComBox.Items.Add("string").
但是这个并没有达到我预期的效果.

请问,我在对话框上的数据怎样传到主窗体上,并加到comBox的Items里?
回复

使用道具 举报

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-4 15:48:01 | 显示全部楼层
还是没有说清楚,那个ComBox.Items.Add("string").是这样的ComBox.Items.Add(textBox.Text.ToString()).对话框的textBox
回复

使用道具 举报

0

主题

10

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-4 17:45:02 | 显示全部楼层
请参考
在.net中轻松掌握Windows窗体间的数据交互
http://blog.csdn.net/冷雨雪/archive/2004/04/05/22027.aspx
窗体的参数传递
http://blog.csdn.net/冷雨雪/archive/2006/05/05/708941.aspx#sec5
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-1-5 10:51:01 | 显示全部楼层
用委托...

参见:
http://community.csdn.net/Expert/topic/5189/5189957.xml?temp=.6943018

以前回过的贴子,问的是"如何将子窗体中的值传给主窗体的ListView",道理一样..
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-1-5 12:21:01 | 显示全部楼层
主窗体Form1:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ComboboxTest
{
    //定义一个委托
    public delegate void MyInvoke(string txt);
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2(new MyInvoke(UpdateCombobox));
            frm.ShowDialog(this);
        }
        private void UpdateCombobox(string txt)
        {
            //添加
            this.comboBox1.Items.Add(txt);
            //选中新添加的项
            this.comboBox1.SelectedIndex = this.comboBox1.Items.Count - 1;
        }
    }
}


子窗体Form2:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ComboboxTest
{
    public partial class Form2 : Form
    {
        private MyInvoke mi = null;
        public Form2(MyInvoke myInvoke)
        {
            InitializeComponent();
            mi = myInvoke;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.mi(this.textBox1.Text.Trim());
            this.Close();
        }
    }
}

详细解释请参见原贴..
回复

使用道具 举报

2

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-5 15:54:01 | 显示全部楼层
非常感谢两位的回答,但是我的那种方法不成功的原因是什么了?
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-1-5 16:18:01 | 显示全部楼层
那你说说你是怎么调用的主窗体上的那个方法的?
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-6 13:33:01 | 显示全部楼层
应当将子窗体(对话框)上的一个值以public的形式传回调用者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表