谁能给我一个这样操作完整代码吗? 很简单啊~~A中创建B的实例时接受参数,B公开选择后的结果对象,B关闭后直接在A代码中里取出B的这个结果 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://developer.51cto.com/art/200909/148825.htm看看吧 http://www.cnblogs.com/jiahaipeng/archive/2008/10/23/1317430.html 打开b窗体的时候将a窗体的句柄带过去,在b窗体上直接操作a窗体内的业务逻辑 A窗体:FormMain formMain = new FormMain(UserId); formMain.Login = this; formMain.Show();B窗体:int userId = 0; public FormMain(int UserId) { InitializeComponent(); userId = UserId; } private FormLogin login; public FormLogin Login { get { return login; } set { login = value; } }窗体传值。。 在列表的事件中NEW一个A的实例,且重写A的构造函数带参的,比如你用的是列表的当值改变的事件,当选择一个值,将这个值带到A 的实例而值就传过去了。 A 中textbox1_keydown(){//检查当按下的是回车时FormB b=new Formb();if(b.ShowDilag()==DilagRsult.OK){//将b的值写到文本框textbox1.text=b.aaa}}b中public static string aaa="";//当list选中时aaa=list1.text;this.DilagRsult=dilagRsult.OK; public delegate void SelectedItemEventHandler(string value); public partial class FormA : Form { public FormA() { InitializeComponent(); } private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { FormB frm = new FormB(); frm.OnSelected += delegate(string value) { this.textBox1.Text = value; }; frm.ShowDialog(); } } } public partial class FormB : Form { public SelectedItemEventHandler OnSelected = null; public FormB() { InitializeComponent(); } private void listBox1_DoubleClick(object sender, EventArgs e) { if (this.listBox1.SelectedItem != null && this.OnSelected != null) { this.OnSelected(this.listBox1.SelectedItem.ToString()); this.Close(); } } } 其实你这个问题描述的就是窗体之间的传值问题。。示例代码如下:A窗体:textboxB窗体: combox首先呢,判断textbox是否为空定义一个属性private static string strText;public static string StrText{ get{return strText;} set{strText = value}}if(textbox.text.trim() !=""){ textbox回车事件(你判断下你按下的是否为回车键) { //这个你可以在A窗体放置一个按钮,设置窗体的AccetpButton为该按钮(就可以实现回车触发事件) this.StrText = this.textbox.text.trim(); }}在B窗体加载的时候就可以根据上面的StrText 值来做相应的操作同样的 在B窗体中用相同的思路思路:1、在B窗体中,也使用属性(参照上面) private static string strText1; public ......... StrText1 { }2、将选中列表框的值赋给属性 this.combobox.selecttext = StrText1;3、弹出A窗体 A.show();4、在加载A窗体时,把StrText1值赋给A窗体的textbox 在A窗体中 this.textbox.text = B.StrText1;大致的代码应该可以实现你的功能...参考下 简单的事情搞复杂了。楼主可以使用Form的showDialog()方法FormA中的代码如下 private void textBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == Keys.Enter) { FormB fb = new FormB(); if(fb.ShowDialog() == DialogResult.Ok) { textBox.Text = fb.ResultValue; } } }FormB中的代码如下: private string _resultValue=""; public string ResultValue { get { return _resultValue;} set { _resultValue = value;} } private void listBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == Keys.Enter) { //判断选择是否符合要求(如 有没有选中) //code // //判断结束后 将值赋给_resultValue _resultValue="需要传递给FormA的值"; //最后设置DialogResult this.DialogResult=DialogResult.Ok; } } //如果有“取消”按钮或者“取消”方法的话 //只需要在方法里面写this.DialogResult = DialogResult.Cancel;即可 FormB fb = new FormB();fb.strvalue = this.textbox1.text; if(fb.ShowDialog() == DialogResult.Ok) { this.textbox1.Text = fb.strvalue; } 用linq to sql 远程连接数据库问题 求助!c#写xml的问题 在MDI窗体中如何在右边增加一个树控件 非常急!关于打印屏幕区域问题!!!! 求VSS下载地址 如何在页面上直接动态显示XML文件 一段VB的事例代码 请帮忙翻译成C# WinForm下主从表的显示问题(急) 求助:在自己的应用程序中如何获得当前浏览器中的URL(假设浏览器开着)? C# 自定义自己的服务器 为什么查找不到path的类型。。求救求救!!!! C# 问题急救~
看看吧
FormMain formMain = new FormMain(UserId);
formMain.Login = this;
formMain.Show();
B窗体:
int userId = 0;
public FormMain(int UserId)
{
InitializeComponent();
userId = UserId;
}
private FormLogin login; public FormLogin Login
{
get { return login; }
set { login = value; }
}
窗体传值。。
{
//检查当按下的是回车时
FormB b=new Formb();
if(b.ShowDilag()==DilagRsult.OK)
{
//将b的值写到文本框
textbox1.text=b.aaa
}
}b中
public static string aaa="";//当list选中时
aaa=list1.text;
this.DilagRsult=dilagRsult.OK;
{ public FormA()
{
InitializeComponent();
} private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
FormB frm = new FormB();
frm.OnSelected += delegate(string value)
{
this.textBox1.Text = value;
};
frm.ShowDialog();
}
}
}
public partial class FormB : Form
{
public SelectedItemEventHandler OnSelected = null; public FormB()
{
InitializeComponent();
} private void listBox1_DoubleClick(object sender, EventArgs e)
{
if (this.listBox1.SelectedItem != null
&& this.OnSelected != null)
{
this.OnSelected(this.listBox1.SelectedItem.ToString());
this.Close();
}
}
}
A窗体:textbox
B窗体: combox首先呢,判断textbox是否为空
定义一个属性
private static string strText;
public static string StrText
{
get{return strText;}
set{strText = value}
}
if(textbox.text.trim() !="")
{
textbox回车事件(你判断下你按下的是否为回车键)
{
//这个你可以在A窗体放置一个按钮,设置窗体的AccetpButton为该按钮(就可以实现回车触发事件)
this.StrText = this.textbox.text.trim();
}
}在B窗体加载的时候就可以根据上面的StrText 值来做相应的操作同样的 在B窗体中用相同的思路
思路:
1、在B窗体中,也使用属性(参照上面)
private static string strText1;
public ......... StrText1
{
}
2、将选中列表框的值赋给属性 this.combobox.selecttext = StrText1;3、弹出A窗体 A.show();4、在加载A窗体时,把StrText1值赋给A窗体的textbox
在A窗体中 this.textbox.text = B.StrText1;大致的代码应该可以实现你的功能...
参考下
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Keys.Enter)
{
FormB fb = new FormB();
if(fb.ShowDialog() == DialogResult.Ok)
{
textBox.Text = fb.ResultValue;
}
}
}
FormB中的代码如下: private string _resultValue="";
public string ResultValue
{
get { return _resultValue;}
set { _resultValue = value;}
} private void listBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == Keys.Enter)
{
//判断选择是否符合要求(如 有没有选中)
//code
// //判断结束后 将值赋给_resultValue
_resultValue="需要传递给FormA的值"; //最后设置DialogResult
this.DialogResult=DialogResult.Ok;
}
} //如果有“取消”按钮或者“取消”方法的话
//只需要在方法里面写this.DialogResult = DialogResult.Cancel;即可
fb.strvalue = this.textbox1.text;
if(fb.ShowDialog() == DialogResult.Ok)
{
this.textbox1.Text = fb.strvalue;
}