C# 把主窗体控件(通过代码)添加到子窗体后,主窗体无法关闭。这是怎么回事?

作者&投稿:朱贞 (若有异议请与网页底部的电邮联系)
(c#)如何关闭启动窗体而不关闭程序?~

这样是不行的,Windows里面必须维护一个主线程不能结束,不然整个程序就结束运行了,所以你在form1里面显示form2然后又想把form1关掉是不可以的,结果会是整个程序都结束。

所以正确方法是运行form2,在form2里面使用ShowDialog来显示form1,最后根据form1的DialogResult来判断form2还要不要继续显示。

如果是从programs中生成的主窗体,主窗体不能关闭,因为那样会退出程序,可以使用我这个方法,在主窗体的form_closed事件中添加如下代码:
this.hide();
将主窗体隐藏来实现关闭;
再次打开时,使用主窗体的变量来打开:
frmMain.show();
当然要在子窗体中定义主窗体的变量:
FrmMain frmMain;
如果主窗体没有打开时想要关闭子窗体,在子窗体的form_closed事件中使用如下代码:
Application.exit(); //这样会退出整个程序,而不只是关闭子窗体

因为你子窗体是运行在主窗体代码之上的,所以关不了。。。。。。要关的话必须做两个平行的窗体!下面是我写的一个登录界面的主函数,你可以参考一下!
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form f2 = new 登陆界面();
f2.ShowDialog();//登录成功则f2.DialogResult = DialogResult.OK,释放登录界面

if (f2.DialogResult == DialogResult.OK)
{
Form f3 = new IP选择();
f3.ShowDialog();
Application.Run(new 主界面());
}
else return;
}

这个还真不知道啊 最好吃问问老师


单县15844047903: 如何在C#窗体代码中添加控件 -
鱼琼藿香: 比如有个panal1,往里面添加picturebox1,则panel1.Controls.Add(picturebox1); 你做个循环,picturebox1……picturebox256,当然,picturebox的一些属性你在循环里自己设定,比如长宽度,位置等. 你想在窗体载入时发生,那么就在Form_Load事件中写.

单县15844047903: C# 如何用代码添加控件 C#中添加窗体、控件都是图形添加的,能不能直接在代码层添加? -
鱼琼藿香: 最好的方法是看vs自己怎么做的.你可以建好一个窗体后,先只往上面放一两个控件,然后添加一些click、keydown之类的事件,然后按图上的找到并打开Form1.Designer.cs文件,将“窗体设计器生成的代码”左侧的加号点开,你就可以看到vs自动生成的添加控件的代码,看了你就知道自己该怎么写了.

单县15844047903: C#中怎么向一个窗体中添加控件(好比RichTextBox),要求用代码实现 -
鱼琼藿香: 类实例化出对象,然后使用对象,设置其属性.RichTextBox Rtb=new RichTextBox; Rtb.text="";

单县15844047903: C#在另一个类中用代码创建一个控件button,那怎么把它加入到主窗体的控件集合中,就是这句代码怎么实现 -
鱼琼藿香: 第一,这个Button的生存期要够长,所以一定要是一个全局变量,否则方法执行后,Button就没了.第二,要有主窗体的对象,可以将主窗体(this)作为参数传递给这个类,然后用这个参数.Controls.Add(bu);就可以加到主窗体里了.第三,如果不想传入参数的话,就需要有一个静态的主窗体类的变量,这个变量可以放在你的另一个类里,也可以放在第三个静态类中,此变量的值,你需要在适当的时候,在主窗体类中将this赋值给他.然后在另一个类中就可以用这个参数的Controls来添加控件了.

单县15844047903: 如何在C#中使用COM控件 -
鱼琼藿香: 用代码向窗体添加控件步骤如下 (1)实例化一个控件;(2)设置控件实例属性;(3)将控件实例添加到窗体的Controls集合中 【示例】用代码向窗体添加一个命令按钮,单击这个按钮关闭窗口并退出 (1)在Visual Studio中新建一个“...

单县15844047903: 急急急,C#窗体应用程序如何代码添加或删除控件! -
鱼琼藿香: Label lbMsg = new Label(); //定义一个ID为lbMsg的Label lbMsg.Text = "Hello World!";//赋值 this.Controls.Add(lbMsg);//将ID为lbMsg的label控件放到form窗体中 lbMsg.Location = new Point(0,0); this.Controls.Remove(lbMsg);// 移除控件 控件是呈现在窗体容器中的,每一个控件对应一个类,而这些类都是派生于Controls类.

单县15844047903: 如何向C#窗体中添加按钮控件 -
鱼琼藿香: 左边有个工具箱 拖上去就是了. 也可以写进去.

单县15844047903: c#怎么用代码添加控件,具体放再哪个位置 -
鱼琼藿香: Form newform = new Form(); newform .Show(); newform .Controls.Add(new TextBox()); 问题补充:如果你想把TextBox放在固定位置这么写 Form2 f2 = new Form2(); f2.Show(); TextBox tx = new TextBox(); tx.SetBounds(50,50,100,100); f2.Controls.Add(tx);

单县15844047903: 在C#编程中怎样在窗体中用代码编写各类控件 -
鱼琼藿香: 熟悉下from.designer.cs 文件的作用,你在窗体拖动一个控件后,该控件的实例化过程都是在designer文件里面实现,在后台代码 form.cs 里面动态创建控件时,其实和你用new关键字实例化一个类是一样的原理,晓得对应控件的类型,就很容易使用它了

单县15844047903: C#.net中如何用代码将控件加载到页面,比如说我想在页面添加一个button,我知道可以直接添加,但是想用代码 -
鱼琼藿香: .CS:Button btn1=new Button(); btn1.ID="btn_1"; Panel1.Add(btn1);(Panel1 is exist before you write these codes)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网