设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
C#窗体切换
返回列表
发新帖
C#窗体切换
[复制链接]
11
|
3
|
2008-5-2 21:46:12
|
显示全部楼层
|
阅读模式
简单一点的办法,就是在创建Form2时传递Form1的引用。假设在Form2中添加一下的字段和属性private Form1 _targetForm;public Form1 TargetForm{
get{ return _targetForm; }
set{ _targetForm = value;}}接着,在Form2的代码中就可以对该引用进行操作了:if(_targetForm != null){
_targetForm.Background = XXXX;}对于Form1,在Form1的button1的Click事件响应中添加如下代码:Form2 form2 = new Form2();form2.TargetForm = this;// 在此用一个变量在存储当前Form1的背景// 然后:if(form2.ShowDialog() == DialogResult.Cancel){
// 在此用存储的背景替换当前被Form2设置的背景}
回复
使用道具
举报
千问
|
2008-5-2 21:46:12
|
显示全部楼层
静态类
回复
使用道具
举报
千问
|
2008-5-2 21:46:12
|
显示全部楼层
用static最简单
回复
使用道具
举报
千问
|
2008-5-2 21:46:12
|
显示全部楼层
在Form1窗体中添加一个button按钮,在该按钮的单击事件(button1_Click)中写如下代码:Form2 form2 = new Form2();//实例化FORM2窗体form2.Owner = this;//指定FORM1是FORM2窗体的拥有者form2.ShowDialog();//用ShowDialog方法,这样会有值传回到FORM1if (form2.DialogResult==DialogResult.OK)//如果你点击了FORM2的确定按钮,则把FORM2我们自己定义的IMAGE类型的属性赋给FORM1的BackgroundImage {this.BackgroundImage = form2.ImageNum; }添加一个Form2窗体,在Form2窗体上添加三个radiobutton按钮和两个button按钮,这三个radiobutton按钮用来选择传给FORM1的背景图片,BUTTON按钮一个是确定,一个是取消;FORM2窗体代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsApplication1{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
this.button1.DialogResult = DialogResult.OK;//指定其中一个按钮的值为OK
this.button2.DialogResult = DialogResult.Cancel;;//指定其中一个按钮的值为CANCEL
}
private Image _image;//定义一个IMAGE类型的属性
public Image ImageNum
{
get { return _image; }
set { _image = value; }
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{//下面是判断选择了哪个图片做为背景
if (radioButton1.Checked)
{
this.ImageNum = this.imageList1.Images[0];
}
else if (radioButton2.Checked)
{
this.ImageNum = this.imageList1.Images[1];
}
else if (radioButton3.Checked)
{
this.ImageNum = this.imageList1.Images[2];
}
}
}}这样就可以实现你说的功能了,另外说一下如果调用SHOW()方法,则SHOW()方法后面的代码会立即执行。如果调用SHOWDIALOG()方法,则调用代码会暂停执行,等到SHOWDIALOG方法的窗体关闭后再继续执行,同时窗体会返回一个dialogresult的值,这样就可以实现您“如果不确认Form2里的选项的话,则在退出Form2之后,Form1仍然为原来的背景。”的要求参考资料:如果需要源码,可以给我发邮件,我把代码发给你
[email protected]
已赞过
已踩过<上面说的都是new出一个对象 那样不好楼上说传递一个引用思路是对的具体我觉得在form1里做一个静态对象 这样方便还容易操纵
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行