c# winform 窗体传值
发布网友
发布时间:2022-05-06 01:23
我来回答
共5个回答
热心网友
时间:2022-06-28 11:03
using System.IO;
namespace Bai
{
//定义一个委托
delegate void MyEventHandler();
public partial class Form1 : Form
{
Form2 f=new Form2();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
GetImgPath();
}
/// <summary>
/// 获取图片路径
/// </summary>
private void GetImgPath()
{
string[] path=Directory.GetFiles(@"d:\img");
foreach(string address in path)
{
lbPath.Items.Add(address);
}
}
/// <summary>
/// 双击listbox事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lbPath_DoubleClick(object sender, EventArgs e)
{
if (f.IsDisposed)
{
f = new Form2();
}
if (lbPath.SelectedIndex != -1)
{
//用委托调用换图方法
MyEventHandler handler = new MyEventHandler(f.ChangePic);
Picture.Path = lbPath.SelectedItem.ToString();
handler();
}
}
}
}
-------------------------------------------------------------------
namespace Bai
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
/// <summary>
/// 换图
/// </summary>
public void ChangePic()
{
try
{
this.picImg.Image = Image.FromFile(Picture.Path);
this.Show();
}
catch
{
MessageBox.Show("没这张图");
}
}
}
}
--------------------------------------------------------------------
namespace Bai
{
class Picture
{
private static string path;
public static string Path
{
get { return Picture.path; }
set { Picture.path = value; }
}
}
热心网友
时间:2022-06-28 11:04
窗体间传值的方法有很多种,这里介绍一种比较好理解的,构造方法传值:
form1.cs中有个这样的构造方法,在这个方法下面再重构一个构造方法
public
form1()
{
initializecomponent();
}
首先封装一个requestid
:
public
int
requestid
{
set;
get;
}
//重写构造方法
public
form1(int
id)
{
this.requestid
=
id;
//这里这个requestid就有值了,是从form2传过来的
initializecomponent();
}
然后在form2中gridview的鼠标双击事件中加上这个方法:
{
int
id
=
你要传的id;
new
form1(id).show();//这里把form2中的id传到form1中去
}
热心网友
时间:2022-06-28 11:04
你可以再form1里
实例化form2窗体
from2
from
=
new
from2()
然后from点from2里的变量
把值付给他
这样
from2就有了
from1中的textbox的值
又或者你定义一个静态变量
直接赋值也可以
具体的要看你是怎么操作的
如不清楚可以再问
热心网友
时间:2022-06-28 11:05
我常用的方法是使用构造函数来传值了,具体的做法是
在form1里生成from2的实例,并且显示
form2 form = new form2(String PicturePath);
form2.show();
在form2的构造构函数里
public form2(String PicturePath)
{
String PicPath = PicturePath;
}
这样的话我们就可以在Form2里使用传过来的值PicturePath了。
当然在开发时我最多传的是 SqlConnection类了。
祝你好运
热心网友
时间:2022-06-28 11:05
设置属性,
例如
public
class
Form1
{
public
Form1()
{
//....
}
public
string
TextValue
{
get{return
this.textBox1.text;}
}
}
Form2中,首先要获取Form1所创建的对象,
也就是
Form1
f1=new
Form1()
f1.TextValue
也就是Form1窗体中
textBox1的值。