主窗体Form2 frm = new Form2(); frm.p = this; this.Hide(); frm.ShowDialog(); 新窗体 [/code] public Form p = null; //用于传递主窗体对象引用 private void button1_Click(object sender, EventArgs e) { p.Show(); this.Close(); } [code=C#]
Private Sub btnSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSet.Click 颜色设置.Visible = True '弹出了新窗体 me.Enabled = False ''第一个页面不可编辑了 ''第一个页面不可编辑了 ' For Each a As Control In Me.Controls ' a.Enabled = False ' Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click 窗体1.Enabled = true me.Enabled = False End Sub
你的应该是 FrmMain f=new FrmMain();f.showdialog();
改成FrmMain f=new FrmMain();f.show();
不以对话框窗体的形式显示就可以同时操作主窗体和子窗体了
自己以前总结了点供楼主参考:
(1)模式对话框要求操作者必须回答以后才能做下面的工作,可以阻止访问其它的窗体,用于颜色选择、字体设置及一些必要信息的输入等。
(2)非模态对话框可以对主窗口进行操作,但一直会在主窗口上方,比如常用的查找和替换等;
(3)二者都没有最大化最小化,所以都须设置为FALSE,都不能缩放对话框,须把FormBorderStyle设置为FixedDialog,都不会出现在任务栏上。
(4)非模式对话框用.show()显示;模式对话框用.showDialog()显示。
{
Form2 form2 = new Form2 ();
form2.ShowDialog();
}新窗体 private void button1_Click(object sender, EventArgs e)
{
this.close();
}
frm.p = this;
this.Hide();
frm.ShowDialog();
新窗体
[/code]
public Form p = null; //用于传递主窗体对象引用
private void button1_Click(object sender, EventArgs e)
{
p.Show();
this.Close();
}
[code=C#]
颜色设置.Visible = True '弹出了新窗体
me.Enabled = False ''第一个页面不可编辑了 ''第一个页面不可编辑了
' For Each a As Control In Me.Controls
' a.Enabled = False
' Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
窗体1.Enabled = true
me.Enabled = False
End Sub