1. 现在有一个mainForm,在mainForm上点击菜单栏弹出 childMainForm, 在childMainForm上点击按钮弹出childForm
现在问题:弹出childForm后,我无法在点击childMainForm,一定要关了childForm后才能在childMainForm上点击,这是为什么?
我程序里弹出方式用的都类似于
childMainForm ch = new childMainForm();
ch.Show();2. 窗体间传递参数是怎么处理的?
就比如我上面childMainForm上点击一个按钮,传参数给childForm,并让childForm根据得到的参数值做一些处理再显示出来,
我网上参考的写了一些传递参数的方法,都没实现。新手,请各位赐教
现在问题:弹出childForm后,我无法在点击childMainForm,一定要关了childForm后才能在childMainForm上点击,这是为什么?
我程序里弹出方式用的都类似于
childMainForm ch = new childMainForm();
ch.Show();2. 窗体间传递参数是怎么处理的?
就比如我上面childMainForm上点击一个按钮,传参数给childForm,并让childForm根据得到的参数值做一些处理再显示出来,
我网上参考的写了一些传递参数的方法,都没实现。新手,请各位赐教
解决方案 »
- 一点小疑问,谢谢各位CSDN网友一直以来的无私帮助,3Q
- odbc方式操作sybase奇怪的问题(急!),能解决者高分重谢(另开贴给分)!
- C#中的GetHashCode()是做什么用的啊。时候时候需要重写啊
- Calendar.SelectedDate.ToString("dd-MMM-yyyy")
- WinForm程序,如何让多个相同控件在时横向或纵向布局时等距呀?
- WebClient HttpWebRequest 获取html代码 缺少部门javascript的问题
- 何如让html代码整齐排列?
- C#中的Ssystem.Net引用问题
- linq to Entity 的 left join 怎么用啊 ????
- 怎么样在窗口里面实现刷新?
- C#变量不刷新变换
- 显示输入字符串的格式不正确
2.窗体传参数其实就等于对象之间的通信,但是模态对话框比如变量dlg返回时到作用域之前}
这段时间,dlg变量没有销毁,所以可以使用dlg的一个公有变量,如果
dlg.result你可以自己定义啦。
但是用show出来的话这样不行了,应该是异步的,show后面的代码之间执行了,不会阻塞。
可以在事件处理里去处理。
form2 f=new form2("xxx");
form2:
string str="";
public form2(string strs)
{
str=strs;
}
看你的情况应该是ShowDialog()
你改成Show()
就可以点击 childMainForm了窗体间传值 可以用属性,变量
第一个问题不对啊
改成show()和ShowDialog()
结果都是一样的,都不能再次点击不知道是不是我没说明白
第2个窗体上,点击按钮弹出第3个窗体;现在我要不关闭第3个窗体直接点击第2个窗体的按钮弹出第4个窗体
第一个问题我写的很清楚,用的是show()
1里面的owner怎么设置的?
Form3 fm3 = new Form3();
fm3.ShowDialog(this);结果运行后,焦点始终在第3个窗体里,我单击第2个窗体的任何地方都一样,焦点始终在第3个窗体了
这个肯定不行
人家用的本来就是是show(),问题没看明白啊你
第一个用 show() 可以实现的。之前是我搞错了我这里追加个问题
我Form2 弹出了 Form3
现在我想做到,Form3既然弹出来了,那么我再点击Form2上的事件时,我想不再弹出新的Form3了,直接让Form3刷新一下,这样能做到吗?类似于web的方式如果做不到的话,能否在弹出第4个窗体的时候自动将第3个窗体关掉??
我这里不知道怎么判断第3个窗体的名字了
foreach (Form frm in Application.OpenForms)
{
if (frm.Text == "Form1")
{
frm.Activate();
IsExist = true;
return;
}
} Form1 frm1 = new Form1();
frm1.Show();
bool IsExist = false;
foreach (Form frm in Application.OpenForms)
{
if (frm.Text == "Form1")
{
frm.Activate();
IsExist = true;
return;
}
} Form1 frm1 = new Form1();
frm1.Show();
private void button1_Click(object sender, EventArgs e)
{
bool IsExist = false;
foreach (Form frm in Application.OpenForms)
{
if (frm.Text == "Form1")//换成你的Form3 {
frm.Activate();
IsExist = true;
return;
}
}
Form1 frm1 = new Form1();
frm1.Show();
}
{
f3.show();
}
else
{
f3.close();
f3.show();
}
private void button3_Click(object sender, EventArgs e)
{
bool IsExist = false;
foreach (Form frm in Application.OpenForms)
{
if (frm.Text == "Form1")
{
frm.Activate();
IsExist = true;
return;
}
}
if (IsExist == false)//上面这个地方忘判断了
{
Form1 frm1 = new Form1();
frm1.Show();
}
}
private int id;
get。
set。。第一个窗口new第二个的时候
form form2 = new form();
form2.id = 赋值咯、、、、、form2.show();。
传值