修改窗体,打开其他窗体

登陆窗体:    

制作一个登录窗口Form1,要求登陆后打开一个新窗口,隐藏该窗口(注:关闭新窗口时,该窗口不会关闭,程序未结束,需要用到构造函数传值来关闭新窗口的同时,关闭该登录窗口.)

 Form2 f2 = new Form2(this, user);//横线部分与下方讲的传值相对应
 f2.Show();
 this.Visible = false;

构造函数传值

将登陆窗口中输入的用户名传值给Form2窗体,Form2关闭时同时将Form1关闭

     Form1 F1 = null;
        Users User = null;
        public Form2(Form1 f1,Users user)
        {
            InitializeComponent();
            label1.Text = user.Username+",欢迎您!";//将Form1登陆界面输入的用户名传值给label1
            F1 = f1;
            User = user;
        }
        private void Form2_FormClosed(object sender, FormClosedEventArgs e)//关闭form2时的触发事件,Closed和Closing都可以
        {
            F1.Close();//本窗口关闭时,同时将Form1窗口同时关闭
        }

打开唯一窗体

如果多次点击同一个按钮,打开了多个相同的窗体,这样是不合理的,同样可以通过构造函数传值来控制,在主窗体中创建一个list<Form>公共集合,还可实现最小化时,点击按钮实现窗口弹出还原效果,同样可以实现焦点从主窗体转移到新窗体

//主窗体代码 public List<Form> Flist = new List<Form>();

        private void button2_Click(object sender, EventArgs e)//点击修改按钮
        {
            int count = 0;//定义一个标记变量,count为零时表示修改窗口未打开

            Form1 f1 = new Form1(this,User);
            foreach (Form f in Flist)
            {
                if (f is Form1)//修改窗口若打开
                {
                    f.Focus();//焦点不在修改窗口,点击修改按钮将焦点定到修改窗口
                    if (f.WindowState == FormWindowState.Minimized)//若修改窗口最小化,点击修改按钮,将修改窗口还原
                    {
                        f.WindowState = FormWindowState.Normal;
                    }
                        count++;
                }
            }
            if (count == 0)
            {
                Flist.Add(f1);//若修改窗口未打开,点击修改按钮,将修改窗口打开
                f1.Show();
            }
        }
//新窗口代码    当Form2关闭的时候,设置关闭事件,将From2自己从集合中删掉 

     Form3 F3 = null;//定义全局变量用于在下面使用,先等于空,在构造函数运行,也就是打开窗体的时候再赋值
     public Form1(Form3 f3,Users user)
        {
            F3 = f3;
            InitializeComponent();
        }         private void Form1_FormClosing(object sender, FormClosingEventArgs e)     {        F3.Flist.Remove(this);//移除特定对象的第一个匹配项(将Form1从自己的集合中删除)     }

ComboBox下拉列表数据绑定

ComboBox绑定数据源后,可设置显示的数据与其value数据,value数据是不显示出来的,但是可以在程序中使用,尤其方便在数据库多个表之间查找数据

 List<Class> list = new ClassData().Select();
            控件名.DataSource = list;//班级下拉列表获取数据源
            控件名.DisplayMember = "classname";//班级下拉列表显示的值
            控件名.ValueMember = "classcode";//班级下拉列表隐藏值
时间: 2024-10-07 05:25:20

修改窗体,打开其他窗体的相关文章

winform 子窗体刷新父窗体的数据

建一个接口 比如 iMainForm接口内声明个方法 比如 Refresh()主窗体 实现这个接口 主窗体打开子窗体时这样写 子窗体.Owner = this;子窗体.ShowDialog(); ---------------------------------子窗体内你想啥时候刷新都行(this.Owner as iMainForm).Refresh(); ---------------------------------以上方法非常泛用 http://bbs.csdn.net/topics/

winform修改、打开窗体、构造函数传值

制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form1 f1 = new Form1(); f1.Show(); this.Visible = false; 另:这样写的话再关闭第二个窗口的时候,程序并没有完全结束,第一个登陆窗口仍然存在,虽然不显示 因此我们用到构造函数传值,并且这样可以实现打开唯一窗口(不重复打开同一个窗口) 构造函数传值: 构造

【2017-04-27】布局及容器控件、打开多窗体、构造函数传值、打开唯一窗口

一.布局和容器控件 1.布局属性 - Anchor  控件定位锁死在那个位置,根据哪个位置锁死. - Dork     填充满.填充上下左右. - Location  位置. 2.容器控件 - Panel  相当于html中的div. - FlowLayoutPanel  继承自Panel,多了流式布局功能 - GroupBox    继承自Panel,多了一个标题,有小虚线. - TabControl  选项卡 选项卡修改标题,用选项卡的TabPages属性,在每个选项卡标题对应的Text属性

构造函数传值 和仅打开唯一窗体

登陆窗体: 制作一个登录窗口Form1,要求登陆后打开一个新窗口,隐藏该窗口(注:关闭新窗口时,该窗口不会关闭,程序未结束,需要用到构造函数传值来关闭新窗口的同时,关闭该登录窗口.) Form2 f2 = new Form2(this, user);//横线部分与下方讲的传值相对应 f2.Show(); this.Visible = false; 构造函数传值 将登陆窗口中输入的用户名传值给Form2窗体,Form2关闭时同时将Form1关闭 Form1 F1 = null; Users Use

Response.Redirect 打开新窗体的两种方法

普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location='http://dotnet.aspx.cc';</script>") 方法外,是不能在新窗体打开所指定的  URL 地址的.可是,假设细致分析一下,假设设置 form 元素的 target 属性,还是有办法打开新窗体的.以下就是能够採用的两种方法. 方法一:在server端设置 targ

window.open 打开子窗体,关闭全部的子窗体

需求:通过window.open方法打开了子窗体,当关闭主窗体时.子窗体应当也关闭. 实现思路: 1.打开子窗体函数window.open(url,winName)的第二个參数winName能够唯一标识打开的窗体.因此关闭子窗体仅仅须要使用winName.close()函数就可以. 2.一个页面可能有多个子窗体. 因此须要一个数组存储全部子窗体对象.关闭时,遍历数组就可以. 3.子窗体还能够再打开子窗体. 无限循环下去.因此须要推断. 此需求能够通过两个方法实现. 调用子窗体的关闭函数. 此方法

2017-5-9 打开唯一窗体的实例操作

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 打开唯一窗体 { public partial cl

C#点击按钮关闭当前窗体 打开另一个窗体。

网上有很多是隐藏当前窗体,但是这样占用资源,效果不好,因此改进方法如下: private void button1_Click(object sender,EventArgs e) { this.hide(); Form1 form=new Form1(); form.ShowDialog(); this.Dispose();//释放所有资源 } C#点击按钮关闭当前窗体 打开另一个窗体.

C#通过反射打开相应窗体方法

C#单击菜单栏或工具栏时通过反射打开窗体的方法,可以以取代长长的if-else或switch-case语句.要点:将菜单或工具栏项的名称设置为与相应窗体名称相同(关键). private void MenuItem_Click(object sender, EventArgs e) { ToolStripMenuItem menuItem = (ToolStripMenuItem)sender; Form form = (Form)Assembly.Load("您的程序集名称").Cr