日期:2014-05-19  浏览次数:21043 次

怎样让主窗体打开的新窗体一直处于被选中状态?
比如做一个用户登录的新窗体f2,主窗体中打开新窗体f2,接收用户登录信息,我想让f2一直作为当前窗体,同时让主窗体在f2被关闭前无法被选中,应该用哪个属性?似乎对主窗体设置visible和enabled都无法阻止鼠标把他点击成当前窗口。

另外,程序主窗体也有吗?我在新打开的窗体f2里怎样调用主窗体的方法?

------解决方案--------------------
用模式窗体

Form2 f2 = new Form2();
f2.ShowDialog();
------解决方案--------------------
我在新打开的窗体f2里怎样调用主窗体的方法?
你可以在主窗体中定义一个静态方法 直接用窗体名.方法名调用
应该用哪个属性?似乎对主窗体设置visible和enabled都无法阻止鼠标把他点击成当前窗口。

使启动 Windows 窗体不可见
要使 Windows 应用程序的主窗体在应用程序启动时不可见,必须将应用程序的启动逻辑移动到单独的类中。不能简单地将其 Visible 属性设置为 false。

将应用程序的生存期与窗体的生存期分隔开以后,可以使窗体可见(和不可见),因为当您“关闭”用于启动应用程序的类时,应用程序将结束。

注意 由于模块的代码运行时模块不可见,下面的过程包括在启动模块中添加消息框的步骤,以简单说明应用程序正在运行。
将窗体设置为在开始时不可见
可以间接来解决此问题
this.ShowInTaskbar=false;
this.WindowState=System.Windows.Forms.FormWindowState.Minimized;
在双击时,
使windowstate复原就行了。
------解决方案--------------------
模式对话框
------解决方案--------------------
.ShowDialog()
------解决方案--------------------
用showdialog()解决问题了,但是对jin_yong所说的窗体名.方法名的方法仍然不解,Application.Run(new Form1());创建主窗体,主窗体的窗体名是什么?
----------------------------------
比如说你的Form1中有一个静态方法

public static string HelloWorld()
{
return "Hello World! ";
}

在Form2中就可以这样调用

private void Form2_Load(object sender, EventArgs e)
{
richTextBox1.Text = Form1.HelloWorld();
}
------解决方案--------------------
本人有不同以上的意见,

让你的F2成为主窗体, 也就是说, 一启动系统, 你就打开F2, 只是在F2打开前调用F1, F1为登录窗体,

这样一来也不要总有一个不用了的窗体F1在烦你,

我写过这是可以实现的,
------解决方案--------------------

要调用的F1窗体的方法应为public
重写F2构造函数
form1 f1;
Form2(form1 myform)
{
this.f1= myform;
}
就可以在F2中调用F1的方法了。