最近开始了一个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. Linq学习总结2--Linq to XML

    概述: linq to xml(下面简称ltx好了),是微软根据linq技术对于XML的CURD.使用起来比System.XML中的XML操作方式更加简便.这段时间使用它在公司里升级了老板的邮件系统, ...

  2. mybatis中的#{}和${}

    #{}:相当于预处理中的占位符?. #{}里面的参数表示接收java输入参数的名称. #{}可以接受HashMap.简单类型.POJO类型的参数. 当接受简单类型的参数时,#{}里面可以是value, ...

  3. UE4 执行Console Command ----ExecuteConsoleCommand

    void UKismetSystemLibrary::ExecuteConsoleCommand(UObject* WorldContextObject, const FString& Com ...

  4. C++ 11 Template ... 与Decltype 测试

    #include <iostream> #include "string" using namespace std; template<typename T> ...

  5. 关于python函数的学习记录

    1.默认参数必须指向不变对象! 2. extra = {'city': 'Beijing', 'job': 'Engineer'}注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函 ...

  6. WEB前端工程师面试题【前端】

    1.form中的input有哪些类型?各是做什么处理使用的?2.table标签中border,cellpadding td标签中colspan,rowspan分别起什么作用?3.给Array原型添加一 ...

  7. JS控制的动态表格

    对应的js: function pccAddSignRow() { //读取最后一行的行号,存放在LearnTRLastIndex文本框中 var pccTRLastIndex = findObj(& ...

  8. thinkPHP CRUD操作

    数据访问 以 nation 表为例 方法一  => select() ①造模型对象 $naiton = D('Nation');   //也可以使用M()方法 ②查询所有 $a = $natio ...

  9. Latex 数学符号

    本文完全转自 <常用数学符号的 LaTeX 表示方法>,在此转载仅仅为了便于查阅,谨向原作者致以崇高的敬意. 常用数学符号的 LaTeX 表示方法 (以下内容主要摘自“一份不太简短的 LA ...

  10. Android 性能测试

    写在前面: 测试一道,博主接触的也是皮毛而已,没有接触过rom的测试,下边所说的都是博主接触过的app的性能测试.我只谈方法,少提概念.各位大神不喜勿喷. 概述 除启动时间外,我们应该做的测试,可能需 ...