求教C#几个简单问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 11:36:04
1: 类似Application.Run(new Form1)
我想从Form1 -- Form2 该怎么做??
我的意思是,Form2.Show()的时候,Form1要不见了(不是隐藏)
因为好象如果Show()了Form2再关Form1的话会连Form2也关了

2:在写属性时,类似FORM 窗体的Font,BackColor等在属性栏上的那个按扭怎么弄出来?比如我也要定义一个颜色,也要在属性栏里面有个按扭,还有类似Size属性Combox的呢?

问题一:
是因为 Application.Run 方法执行完毕后,Main 方法退出导致 Form2 窗体被关闭所致。
Application.Run(new Form1());
Application.Run(new Form2());
这样 Form1 窗体退出时,Form2 窗体就可以显示了。可以加一些 if 条件,让程序更灵活,如下面代码,给你一个思路:
class Program
{
public static bool IsShowForm2; // 是否显示 Form2 窗体
static void Main()
{
Application.Run(new Form1());
if(IsShowForm2)
Application.Run(new Form2());
}
}
// 注:在 Form1 的 FormClosed 事件中设置 Program.IsShowForm2 为 true 即可显示 Form2 窗体了。

问题二:
只要自己定义的属性的类型为 Color、Font、Size ... ... (完全限定名 System.Drawing.Color、System.Drawing.Font、System.Drawing.Size)就可以在属性浏览器里面实现你的效果。
注意:你自己定义的类(没有继承其他类的情况)要在属性浏览器中显示,只要要继承 Component 类后就可以了(完全限定名时:System.ComponentModel.Component),请保证先编译一次这样就能在属性浏览器中看见。

第一个问题解答:
你可以将Form2设置为起始窗体。即Application.Run(new Form2)
然后在Form2的Load事件中实例化Form1,如Form1 f1 = new Form1();
接着f1.Show()显示窗体Form1,在Form1中可以用this.Close()关闭窗体,也可以设置