c#中多次调用同一个窗体怎么实现

cuiwenjun57 2012-06-16 04:09:34
是这样的,我创建了一个form3这个是提供门店名称选择的,我其他的form1,form2,form4,form5,都要调用form3来选择部门,并且把选出来的数据传值给调用他的窗体,,就是不知道怎么处理分别调用并且传值

请大侠们帮帮忙
...全文
524 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在你的form3 中定义一个公有静态变量保存你需要传回去的信息
比如 public static string str = "需要传回去的数据";
然后在form1,form2,form4,form5中就可以用
form3.str来访问传回来的值了

使用这样
form3 f3=new form3()
f3.ShowDialog()
可以调用打开form3
zdzcool 2012-06-20
  • 打赏
  • 举报
回复
来晚了。9楼说的对啊。
cuiwenjun57 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
在你的form3 中定义一个公有的静态变量保存你需要传回去的信息
比如 public static string str = "需要传回去的数据";
然后在form1,form2,form4,form5中就可以用
form3.str来访问传回来的值了

使用这样
form3 f3=new form3()
f3.ShowDialog()
可以调用打开form3
[/Quote]

我用了你的方法,可是不能自动调用那个.str。怎么打不出来啊!!!
allen0118 2012-06-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/chenpeng0118/article/details/6858953

窗体间传值,可以看看,我一直这样用。
cnfixit 2012-06-19
  • 打赏
  • 举报
回复

public partial class Form2 : Form//这就是你的form3,就是用来供其他窗口选择数据用的
{

public delegate void afterselectdel(object sender, selectedEventArgs e);
public event afterselectdel afterselected;
public Form2()
{
InitializeComponent();
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form2_FormClosed);
}

public class selectedEventArgs:EventArgs//自定义一个事件参数类,用来传递事件发生时感兴趣的信息
{
private string _value;

public selectedEventArgs(string value)
{
_value = value;
}
public string myValue
{
get { return _value; }
set { _value = value; }
}


}

private void Form2_FormClosed(object sender, FormClosedEventArgs e)//窗口关闭引发afterselected事件,当然也可以放在其他事件处理程序里面,根据需求改
{
if (this.afterselected != null)
this.afterselected(this, new selectedEventArgs(this.comboBox1.SelectedText));
}
}





private void button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.afterselected += new Form2.afterselectdel(f2_afterselected);//所有需要回传值的窗口都实例化Form2并注册afterselected事件
f2.Show();
}

void f2_afterselected(object sender, Form2.selectedEventArgs e)
{
MessageBox.Show(e.myValue);//e.myValue就是Form3的Combobox选中的值,也可以通过修改selectedEventArgs类来添加想回传的数据
}
cuiwenjun57 2012-06-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
闲的没事干,来给你代码

C# code


public partial class Form2 : Form//这就是你的form3
{

public delegate void afterselectdel(object sender, selectedEventArgs e);
public event afterselect……
[/Quote]



看不明白怎么回事?能解说下不?给你加分好不?
cnfixit 2012-06-16
  • 打赏
  • 举报
回复
闲的没事干,来给你代码

public partial class Form2 : Form//这就是你的form3
{

public delegate void afterselectdel(object sender, selectedEventArgs e);
public event afterselectdel afterselected;
public Form2()
{
InitializeComponent();
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form2_FormClosed);
}

public class selectedEventArgs:EventArgs
{
private string _value;

public selectedEventArgs(string value)
{
_value = value;
}
public string myValue
{
get { return _value; }
set { _value = value; }
}


}

private void Form2_FormClosed(object sender, FormClosedEventArgs e)//窗口关闭引发afterselected事件
{
if (this.afterselected != null)
this.afterselected(this, new selectedEventArgs(this.comboBox1.SelectedText));
}
}


调用方:

private void button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.afterselected += new Form2.afterselectdel(f2_afterselected);
f2.Show();
}

void f2_afterselected(object sender, Form2.selectedEventArgs e)
{
MessageBox.Show(e.myValue);
}
lumourenBit 2012-06-16
  • 打赏
  • 举报
回复
每次调用时,new一下form3就可以了。把要传递的值作为form3的属性传递即可。
我爱白富美 2012-06-16
  • 打赏
  • 举报
回复
一楼的加上我说的已经很清楚了,何况我把部分代码都写出来了,说的这么明白了你还不会写吗,非要copy么
cuiwenjun57 2012-06-16
  • 打赏
  • 举报
回复
要具体的代码啊,你们没有遇到过这种情况么?
多次调用同一个窗体,而且要传值的。

要具体的代码啊
要具体的代码啊
要具体的代码啊
要具体的代码啊
我爱白富美 2012-06-16
  • 打赏
  • 举报
回复
form3 f3=new form3()
f3.ShowDialog()
可以调用打开form3
建个变量 public static string mendianname=xx;
xx是你选择的门店
在其他窗口就可以用mendianname来赋值了
  • 打赏
  • 举报
回复
调用时候直接NEW出一个新的form3窗体,并显示

而至于传值 可以在调用的窗体设置静态变量,然后被调用窗体改变其值就可

也可以再被调用窗体中设置属性,然后供调用窗体调用
目录: 第1章 Visual C#2008与窗体界面 案例1 飘动动画窗体 案例2 透明动画窗体 案例3 利用API函数实现动画窗体 案例4 闪烁动画窗体 案例5 滚动字幕动画窗体 案例6 超女卡通窗体 案例7 总在最前的登录窗体 案例8 在屏幕央的圓形窗体 案例9 半透明的T形窗体 案例10 多文档MDI窗体 案例11 渐变色窗体 案例12 笑脸窗体 案例13 八边形图形窗体 本章小结 第2章 Visual C#2008与图形图像 案例1 动态绘制直线和曲线 案例2 动态绘制验证码 案例3 椭圓及椭圆弧的绘制 案例4 移动鼠标复制坐标区域图像 案例5 动态获取当前程序的图标 案例6 动态获取系统图标 案例7 动态打开、显示和缩放图像 案例8 在图像上动态加载文字 案例9 水平和垂直遮罩图像动画效果 案例10 图像拉伸动画效果 案例11 百叶窗图像动画效果 案例12 翻转和扩展图像动画效果 案例13 图像的纹理和浮雕效果 案例14 图像的马赛克效果 本章小结 第3章 Visual C#2008与多媒体 案例1 抛物线动画效果 案例2 图像滚动动画效果 案例3 飞舞的雪花 案例4 电子时钟 案例5 Flash动画播放器 案例6 AvI动画播放器 案例7 GⅣ动画播放器 案例8 MP3音乐播放器 案例9 肥皂泡泡屏幕保护程序 案例1O 图像随机显示屏幕保护程序 案例11 滚动字幕屏幕保护程序 案例12 带有背景音乐的随机字幕屏幕保护程序 案例13 托盘动画图标程序 本章小结 第4章 Visual C#2006与数据库 案例1 利用DataGridView控件显示数据库信息 案例2 数据库数据记录单 案例3 利用下拉列表框动态查询数据库信息 案例4 利用ListView控件导航数据库信息 案例5 带有数据库的会员登录系统 案例6 动态添加数据库数据信息 案例7 动态修改数据库数据信息 案例8 动态删除数据库数据信息 案例9 带有图像信息的数据库数据记录单 案例10 分页显示数据库的记录数据信息 案例11 连接Excel 2008表格 案例12 连接SQL Server数据库 本章小结 第5章 Visual C#2008的SQL查询与图表技朮 案例1 多表连接条件查询 案例2 分组条件查询 案例3 排序查询 案例4 嵌套查询 案例5 视图在Select查询语句的应用 案例6 存储过程在Select查询语句的应用 案例7 动态获取数据库所有视图和存储过程 案例8 柱状图表分析图 案例9 柱状图表的升序和降序 案例10 折线图表分析图 案例11 多折线图表分析图 案例12 饼形图表分析图 本章小结 第6章 Visual C#2008的打印与水晶报表技朮 案例1 利用Windows组件打印数据库的数据 案例2 利用Windows组件打印数据库数据柱状图表 案例3 利用Windows组件打印输出图像 案例4 调用Word软件打印数据库的数据 案例5 调用Excel软件打印数据库的数据 案例6 利用水晶报表打印数据库的数据 案例7 利用水晶报表分组统计数据库的数据 案例8 利用水晶报表筛选数据库的数据 案例9 图表在水晶报表的应用 本章小结 第7章 Visual C#2008与Windows系统设置 案例1 任务栏的显示与隐藏 案例2 开始按钮的显示与隐藏 案例3 动态设置系统输入法 案例4 动态设置桌面颜色 案例5 动态设置鼠标的属性 案例6 动态获取鼠标位置 案例7 声卡的检测及声音、音频设备属性的设置 案例8 只能运行一次的托盘程序 案例9 动态设置程序是否为开机运行 案例10 动态设置注册表是否可运行 案例11 禁止修改IE浏览器的主页 案例12 动态锁定计算机 案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 Visual C#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4 动态创建和删除文件夹及显示其是否存在 案例5 动态获取文件夹的文件 案例6 动态搜索文件或文件夹 案例7 动态显示磁盘容量图表 案例8 动态移动文件 案例9 动态复制文件 案例10 动态调用可执行EXE文件 案例11 动态查看和修改文件属性 案例12 动态比较文件 本章小结 第9章 Visual C#2008算法及控件的应用 案例1 利用冒泡算法实现从小到大排序 案例2 利用希尔算法实现从大到小排序 案例3 判断主机Ⅳ合法性算法 案例4 欧几里德最大公因子算法 案例5 字符串的加密算法 案例6 随机生成新身份证算法 案例7 利用ListBox控件实现数据源字段的选择 案例8 利用ListView控件实现图标的管理 案例9 利用TreeView控件浏览图像 案例10 利用ProgressBar控件实现进度控制 案例11 利用Timer控件显示当前时间 章小结 第10章 Visual C#2008与网络开发 案 例1 动态获取本机MAC地址 案例2 动态获取本机IP地址 案例3 动态网络Ping操作 案例4 定时访问互联网 案例5 定制网络浏览器程序 案例6 动态发送电子邮件 案例7 动态读取XML件 本章小结 第11章 Visual C#2008与Web应用程序 案例1 利用AdRotator控件随机显示广告图像 案例2 利用Calendar控件动态查询系统日期 案例3 会员登录系统 案例4 利用Application对象实现网站计数器 案例5 利用Session对象实现留言板 本章小结

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧