最近开始了一个winform项目,原先一直都是web项目。遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操作区域的效果。中间区域要想控制左侧导航或者顶部导航都是困难的,因为这时没有激活左侧窗体,操作顶部相对容易,因为顶部是父窗体,子窗体操作父窗体的例子很多,百度一下。我之前也写过一篇:winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体。

同样是子窗体相互操作起来挺困难,可以通过设置一个static静态变量,在加载某一窗体前把form作为object赋值给这个变量,在需要操作的地方调用。

具体如下:

我项目中有个公共类叫cSys

定义static变量:public static object currentLeftMainForm = null;

左侧的窗体是leftInItem,打开到了左侧的panel里,在打开时加入下面的代码:cSys.currentLeftMainForm = objleft;

objleft是leftInItem定义的,如:leftInItem objleft = new leftInItem();

这时currentLeftMainForm 就一直是激活状态,在需要操作左侧的时候就可以直接调用了,

如:leftInItem cleft = (leftInItem)cSys.currentLeftMainForm;

相应的操作示例:cleft.setCurrentButton("btnInItemList");

setCurrentButton是在leftInItem中定义的方法。

这样就轻松实现了同级窗体的互操作。

原帖地址:winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法

bubuko.com提供,禁止转载。

winform里操作打开在panel里的form窗体,子窗体操作同级子窗体或者父窗体的方法的更多相关文章

  1. C# Winform 怎么让按钮在Panel里居中显示

    把pannel里面的多个按钮的那个anchor属性全部去掉,如下图: 再用VS2010自带的工具调一下即可: 小注: 有的时候我们却想子控件在父控件里的相对位置不要随着父控件的变大缩小而变化,或者控件 ...

  2. Winform软件,不要在线程里操作UI

    对于Winform软件,不要在线程里操作UI,不要相信:StartForm.CheckForIllegalCrossThreadCalls = false; 于是,把所有的代码都改成主线程委托调用的方 ...

  3. WinForm点击按钮在对应的panel里画图

    panel在form1里,button在form1上方,panel在下面. 主要是在button1的click时间获取panel的画笔. 下面的不行,在panel里获取画笔,然后传到button1,根 ...

  4. lhgdialog在打开的窗口里点击按钮关闭当前窗口

    lhgdialog在打开的窗口里点击按钮关闭当前窗口 var api = frameElement.api, W = api.opener; api.close();

  5. Log4.Net 在Winform、MVC、ashx程序里的使用,ashx程序里使用异步

    最近做一个双11活动的,是一套相关的H5页面.本来以为难度不大,但是做下来几天还是遇到些问题.就总结一下吧,还是有收获的. 1.在H5页面中,有一个遮罩层,还是挺有意思的.直接用div+css控制遮罩 ...

  6. Java操作数据库——在JDBC里使用事务

    Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...

  7. winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

    winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...

  8. C# 子窗体点击按钮产生的新子窗体放在父窗体里

    情景展示: 父窗体Form1,左边是按钮,右边是panel(放置子窗体) 父窗体点击按钮,在panel显示第一个子窗体AA, AA有个按钮,点击按钮,是第二个子窗体ZZ, 怎样将AA的子窗体ZZ也显示 ...

  9. 关于python命令在editor里编写与在interpreter里的编写的不同之处

    关于python命令在editor里编写与在interpreter里的编写的不同之处 其实用这个标题,我心里还是有点胆怯的.作为一个python入门的小白,不,编程入门的小白,我还不太确定我对edit ...

随机推荐

  1. BZOJ 1537 二维偏序

    #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> ...

  2. linux编译c文件

    1.创建.c文件,比如在firstmake文件夹创建了一个a.c文件,那么编译语句为: gcc -o firstmake a.c //格式为文件夹名 文件名 2.然后就会生成一个firstmake.o ...

  3. Gear VR开发

    下载安装Unity开发工具,要求Unity 5.3.0 或更高版本         下载Oculus签名,做Gear VR交互功能模块.关于输入交互,可以下载VR Samples(地址:https:/ ...

  4. Node黑客开发的10个好习惯(2016)

    在2015年底之际,javascript开发者已经掌握了大量的工具.最后一次我们调查的时候,现代化的JS蓝图才刚刚出现.今天,我们很容易在JS的庞大生态系统中迷失,而成功的团队大部分时间都遵守着JS开 ...

  5. WCF 部署在Windows 2012 IIS上各种报错的解决方法

    1.由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本 ,请添加处理程序.如果勇载文件,请添加 MIME 映射. 以管理员身份,在cmd中运行C:\Windows\Microsoft.NET\F ...

  6. KI的斐波那契_DFS

    Description KI十分喜欢美丽而优雅的斐波那契数列,最近他新认识了一种斐波那契字符串,定义如下 f (0) = b, f (1) = a, f (2) = f (1) + f (0) = a ...

  7. chrome调试

    今天对chrome调试又进行了系统的学习. Chrome调试工具developer tool技巧 把以前没有使用过的功能列举一遍. 伪类样式调试:伪类样式一般不显示出来,比如像调试元素hover的样式 ...

  8. Mac安装windows虚拟机攻略

    5月初从阿里滚粗,然后失去了公司发的Mac Air.说实话Mac机器确实比windows好用一些,于是怒而买了一个Mac Pro. 结果一个星期后我从学校带出来的联想笔记本又被老师通知要进行固定资产盘 ...

  9. javascript onblur事件阻塞选中input框

    先上问题实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  10. JSP-JSTL学习

    <%@page import="com.Student"%> <%@page import="com.Person"%> <%@p ...