多窗口切换传值,菜单,工具栏

在form1中打开form2:private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
            this.Hide();//打开From2时,隐藏From1
        }这样出现这样一个问题:在打开form2的时候form1隐藏了,也就无法再将form1关闭,会在后台一直运行。解决方案:构造函数传值,在关闭form2的时候也同时将form1关闭。

Form1 F1 = null;
public Form2(Form1 f1)//构造F1
{
InitializeComponent();
F1 = f1;
}

private void Form2_FormClosing(object sender, FormClosingEventArgs e)//FormClosing,在F2关闭之前先执行一遍函数内容(F1.Close();)
{
F1.Close();
}

这样无法解决可以从form1打开多个form2的问题

需要创建一个泛型集合,将所有打开的form2添加到集合中,如果集合中已经存在form2,就不再打开,如果没有才打开

bool has=false;//设置变量来判断From2是否已被打开一次
            Form2 f2 = new Form2(this);
            foreach(Form F in flist) //遍历集合里是否有f2
            {
            if(F.Name==f2.Name)
            {
                has = true;
            }
            }
            if (has)
            { }
            else  //如果没有,添加进集合
            {
                flist.Add(f2);
                f2.Show();
            }这样发现将f2添加进集合里之后has便一直为true,也就是打开form2之后无法将其打开,所以在窗体关闭时要将集合里的属性数据清除。这时候form1中添加一个函数
public void DeleteFrom(Form F)
        {
            flist.Remove(F);
        }

  然后再在form2中调用

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (F1 != null)
            {
                F1.DeleteForm(this);
            }
        }

 焦点移入问题

在From1中button1的点击事件中if(has){}中添加“ f2.Close();”,它起到释放内存的作用

if(F.Name==f2.Name){has = true;}true;后添加F.WindowState = FormWindowState.Normal;//最小化或最大化时点击按钮恢复正常大小
F.Focus();//焦点进入

窗体之间传值

将From2的构造函数改为

public Form2(Form1 f1,string uname)
{
InitializeComponent();
F1 = f1;

label1.Text = "欢迎回来," + uname;
}

在From1中改为  Form2 f2 = new Form2(this,textBox1.Text);

控制:第一步,找到窗体对象,第二步,将窗体对象的控件值更改
注意:要将窗体中的对象访问权限修改为public:

在From2中添加新建一个按钮和文本框,点击此按钮的点击事件,添加if(F1!=null){F1.button1.Text=Textbox1.Text}
4、提示框类型的窗体

ShowDialog();

修改地方:

 Form2 f2 = new Form2(this,textBox1.Text);
            f2.ShowDialog();

作用:

将窗体显示为模式对话框。 在调用Form.ShowDialog方法后,直到关闭对话框后,才执行此方法后面的代码

二、菜单和工具栏

1、MenuStrip:
顶部菜单,可右键点击插入标准项
分割线:1、添加“-” 2、右键插入Separator

快捷键:每一个项右键属性最下面ShortcuKeys可以设置快捷键(注意不要与常用快捷键冲突),ShowShortcuKeys是否在该项上显示快捷键
不管选项隐藏还是菜单隐藏,快捷键都管用

2、ContextMenuStrip:
右键菜单

在属性行为上ContextMeunStrip选择您要关联右键菜单,即可使用右键菜单,每一个控件都可以关联右键菜单

3、StatusStript:
底部菜单,可以添加文本,进度条,按钮

4、ToolStrip
工具条

5、ToolStripContainer
工具条容器

时间: 2024-11-06 22:43:59

多窗口切换传值,菜单,工具栏的相关文章

uCGUI 按键窗口切换机制(更新篇)

在之前文章中,讲述了一个低内存使用量的的窗口切换机制.有人会问,低内存使用量是多低呢,我这里举个例子.我有一个项目中使用到本切换机制,128*64的单色屏,初步计算有105个窗口(后面还会增加),总内存使用量(包括任务栈)=105*3*4(窗口树) + 1024(公共buff) + 512(任务栈) + 1024*3(uCGUI动态内存) = 6k左右.从这个数字可以看出内存算是使用比较少的了.毕竟有100多个窗口,我在设计时也就只做了10多个窗口,这100多个窗口就是由10多个窗口大量复用组合

第2章4节《MonkeyRunner源码剖析》了解你的测试对象: NotePad窗口Activity之菜单简介(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. NotePad窗口Activity之菜单简介 这里我们总共用到两种类型的菜单,一种叫做Context Menu,就是上下文菜单:一种叫做Option Menu,就是我们按下系统菜单按键后会弹出来的系统菜单选项. Not

第三章:Selenium 多窗口切换

当遇到在某一个窗口中点击某个按钮,就会跳转到另外一个窗口中,此时,如果不进行窗口切换,就会造成 元素错误. 多窗口切换案例: 我们想要操作 京东企业购 里面的内容:就必须进行窗口切换,这样才会保证不会报错 2. 窗口切换的代码:

selenium webdriver窗口切换

selenium webdriver窗口切换,有时候在做自动化的时候需要打开很多很多的页面, 当在操作不同的页面的时候需要切换窗口,下面是如何切换到前后页面窗口的操作: package test20161206; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; im

selenium测试(Java)--多窗口切换(十三)

如果遇到点击按钮或链接后出现新窗口的情况,就需要使用窗口切换的方法. 本例中就是先打开百度搜索界面,然后利用js打开一个百度新闻界面,然后通过selenium提供的窗口切换方法切换窗口 1 package com.test.windows; 2 3 import java.util.Iterator; 4 import java.util.Set; 5 6 import org.openqa.selenium.By; 7 import org.openqa.selenium.Javascript

selenium 窗口切换(多表单切换)

在web应用中,前台网页的设计一般会用到iframe/frame表单嵌套页面的应用.简单的就是一个页面签嵌套多个HEML/JSP文件.selenium webdriver  只能在同一页面识别定位元素,可以狭隘的理解成只能识别当前所在位置的页面上的元素.对于不同的iframe/frame表单中的元素是无法直接定位的.需要结合switchTo().frame()方法切换到指定的frame/iframe中.switchTo().frame()默认的是取表单的ID和name属性.如果没有id和name

selenium2.0+java窗口切换函数

最近使用selenium+java的时候需要使用窗口切换,网上找了下,比较简单,为以后学习记录下来 //窗口切换函数 public void windowsFocus() { String currentWindow = driver.getWindowHandle();//获取当前窗口句柄 Set<String> handles = driver.getWindowHandles();//获取所有窗口句柄 Iterator<String> it = handles.iterato

webdriver实现简单的窗口切换

webdriver实现简单的窗口切换,也只能是简单的,因为目前处于学习阶段,复杂的情况现在还没碰到过.之前写过关于一个小demo的总结,就有提到过在新开窗口进行操作的情况,用以下一句就可以搞定了,last代表最后一个窗口,用switch_to切换到最后一个窗口(即新开的窗口)进行操作 dr.switch_to.window dr.window_handles.last 这样一般的流程整个下来是不会有问题的,可是很死板.如果我在操作过程中开了n个窗口,并且要返回到某个窗口去进行操作那该怎么办?显然

CSS3多颜色风格切换的菜单

<!DOCTYPE html><html lang="en" ><head><meta charset="utf-8" /><title>石家庄有机肥</title><style>body { font:14px/1.3 Arial,sans-serif;}.container { background-color: #EEEEEE; border-radius: 5px 5px 5