winFrom在From1的按钮与From2的按钮界面交互出现问题

问题描述

问题代码:publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidbutton4_Click(objectsender,EventArgse){Form2from2=newForm2();from2.Text="测试";closeButton.Text="关闭并返回主主程序";this.Visible=false;this.Enabled=false;from2.Visible=true;from2.Enabled=true;}}}publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}privatevoidcloseButton_Click(objectsender,EventArgse){this.Visible=false;this.Enabled=false;Form1.Visible=true;//此行报错Form1.Enabled=true;//此行报错}}

觉得应该再new个form1,应该可以解决但是不知道应该把代码Form1form1=newForm1()加在哪?

解决方案

解决方案二:
privtetFrom1from1;publicForm2(Fromfrom){InitializeComponent();from1=from;}privatevoidcloseButton_Click(objectsender,EventArgse){this.Visible=false;this.Enabled=false;from1.Visible=true;from1.Enabled=true;}}
解决方案三:
Form1,这是类名,你应该用Form1的实例
解决方案四:
没实例化,要么构造函数传进来,要么属性设置传进来publicForm2(Form1form1){this.form1=form1;}
解决方案五:
按照MS推荐的做法是Form2添加一个closeButtonClick事件,在Form1中处理该事件。另外,Form2每次都是new一个新的,但closeButton单击时为什么都是隐藏,而不是关闭?
解决方案六:
在产生form2的时候,将form1的实例传过去,也就是this和#3差不多
解决方案七:
顶4楼,你这个编程方式有点怪异
解决方案八:
引用6楼johnliuyuan的回复:

顶4楼,你这个编程方式有点怪异

想隐藏form2弹回from1
解决方案九:
你这是典型的VB写法吧
解决方案十:
按你的写法,如果点10次form1的button4,就会生成10个Form2的实例。而且这些实例都不会释放。
解决方案十一:
privatevoidbutton4_Click(objectsender,EventArgse){Form2f=newForm2();f.Text="测试";f.FormClosed+=(s,arg)=>this.Visible=true;f.Show();this.Visible=false;}

把无关的代码都删掉!Form2跟Form1根本没有直接关系,根本不需要写什么Form1.Visible=true这样的代码。编写代码之前,你更重要地是学会与代码无关的知识。如果不知道这些,那就学笨了、学歪了,还不如不花钱学习。
解决方案十二:
Quote: 引用4楼qbilbo的回复:

按照MS推荐的做法是Form2添加一个closeButtonClick事件,在Form1中处理该事件。同一。在第二个closeButton按钮触发的事件中,应该写privatevoidcloseButton_Click(objectsender,EventArgse){this.Close();}

一行代码。
解决方案十三:
Form1窗体中代码privatevoidbutton3_Click(objectsender,EventArgse){Form2form2=newForm2();form2.CloseEvent+=Form2_CloseEvent;form2.Show();this.Hide();}privatevoidForm2_CloseEvent(objectsender,EventArgse){MessageBox.Show("closeform");this.Show();}

Form2窗体中代码publicdelegatevoidCloseDelegate(objectsender,EventArgse);publiceventCloseDelegateCloseEvent;privatevoidbutton1_Click(objectsender,EventArgse){if(CloseEvent!=null){CloseEvent(sender,e);}this.Close();}

代码多点。
解决方案十四:
当你听说“Form2关闭时,要让Form1显示出来”的时候,要结合“设计知识”首先来判断每一个动作的职责是谁来负责。根本不是Form2的职责的,就不要交给Form2来做。而如何决定哪些工作的职责归谁,这应该是你的老师教给你的。叫你一点编程代码,那太low了。应该教一点点软件设计知识,才能收学费。至于说到代码框架,比如说Form类本身就会抛出“FormClosing、FormClosed事件”,这也是必须掌握的知识。掌握这些,就用不着自己再去重新发明车轮子了。
解决方案十五:
引用13楼sp1234的回复:

当你听说“Form2关闭时,要让Form1显示出来”的时候,要结合“设计知识”首先来判断每一个动作的职责是谁来负责。根本不是Form2的职责的,就不要交给Form2来做。而如何决定哪些工作的职责归谁,这应该是你的老师教给你的。叫你一点编程代码,那太low了。应该教一点点软件设计知识,才能收学费。至于说到代码框架,比如说Form类本身就会抛出“FormClosing、FormClosed事件”,这也是必须掌握的知识。掌握这些,就用不着自己再去重新发明车轮子了。

确实造了好大一个轮子,窗体带的事件就足够了。
解决方案:
引用6楼johnliuyuan的回复:

顶4楼,你这个编程方式有点怪异

而且如引用8楼xarrows的回复:

你这是典型的VB写法吧

是的,我这是由于各种各样的原因,需要开发个小windows软件,因为学过VB现在弄javaSE,没涉及过C#粗略的low了一眼C#内容觉得虽然都是面向对象的语言但还是差得太大了,更像VB6.0,于是我变像VB那样设置属性,设置事件。除非遇到BUG就动用学java是面向对象的方式考虑下那些代码错了尝试着排排错。。。
解决方案:
逻辑有问题,代码写的太乱了

时间: 2024-07-31 17:54:53

winFrom在From1的按钮与From2的按钮界面交互出现问题的相关文章

新手-UI系统按钮问题qt写的界面

问题描述 UI系统按钮问题qt写的界面 新手一枚 请问个问题退出时保存界面大小 如果退出时是最大化 下次登陆的时候 把界面按照长和宽Resize和屏幕上方有条缝隙 并且右上角最小化 最大化 关闭 中的最大化还可用 这种情况下 我点击最大化 ,图标不变 无法还原 无法拖拽界面 可以最小化 和关闭操作 求解答? 解决方案 如果退出时是最大化 下次登陆的时候 把界面按照长和宽Resize 只是将窗体的大小设为屏幕大小了,窗体的状态并非最大化,要调用窗体的showMaximized方法.

方法-Android手机通讯录,如何在自带的返回键和menu之间添加联系人按钮/最近通话记录按钮

问题描述 Android手机通讯录,如何在自带的返回键和menu之间添加联系人按钮/最近通话记录按钮 !期望的效果 要做成期望的效果,要怎么写呀,调用哪些方法?求会的人写个实例可好

请教一个iOS的问题,UITableView的Cell上有一个收藏按钮,点击按钮实现收藏。

问题描述 请教一个iOS的问题,UITableView的Cell上有一个收藏按钮,点击按钮实现收藏. 请教一个iOS的问题,UITableView的Cell上有一个收藏按钮,点击按钮实现收藏. 我的问题是:点完按钮后如何(何时)刷新这个界面,让当前cell的收藏按钮变为已收藏状态? 我的需求是只要服务器返回收藏成功就马上变为已收藏.但是直接在收藏成功后改变当前按钮状态会出现复用问题,而重新请求界面数据又要涉及当前加载的数据总个数等问题. 请问大家有什么建议吗,类似这种需求一般是如何处理的? 解决

初学wp8开发:如何点击按钮打开一个新的界面

问题描述 初学wp8开发:如何点击按钮打开一个新的界面 请大家帮帮我,我想在一个界面点击按钮打开另一个界面应该怎么做?

uploadify 按钮 css-uploadify3.2.1按钮问题

问题描述 uploadify3.2.1按钮问题 选完按钮图片后下面有个空白怎么去除:我的按钮图片是100*100,,设置的按钮的宽和高也是100*100,选完图片后所在的div的height就自动增加了12px 解决方案 css控制显示的图片为固定大小就好控制了 解决方案二: 去掉margin-bottom样式,默认容器有这个样式 下面是覆盖的形式,你也可以直接修改uploadify.css文件里面的.uploadify这个css类 <link rel="stylesheet"

javascript-JavaScript 动态生成 一组按钮 和div 切换按钮 显示相对应的 div

问题描述 JavaScript 动态生成 一组按钮 和div 切换按钮 显示相对应的 div 如动态生成ABC三个按钮 A对应的为a1,a2 ,a3 三个div 显示 当单击B按钮时 只显示B1,B2,B3三个div , 当单击C按钮时 只显示C1,C2,C3三个div 解决方案 直接加个onclick事件 js里写个show(判断参数){用jquery的话就简单点 if(判断条件){$("#id").show();....hide();后面自己写}if(){}......} 解决方案

vc++-mfc 按钮背景 多个按钮

问题描述 mfc 按钮背景 多个按钮 mfc多个按钮中每一按钮单击显示一种颜色 点击其它按钮,之前的按钮效果失效 求大神解决,小弟是新手已经被这问题弄崩溃了 这次一定不忘结题! 解决方案 http://blog.csdn.net/silencesu/article/details/7922091 解决方案二: mfc 按钮 实现多个界面跳转给mfc中按钮设置背景颜色如何更改MFC按钮的背景色 解决方案三: 设置一个全局的按钮.在set的时候设置颜色.并将之前的颜色恢复.这只是开发技巧的问题,还不

ASP.NET中GridView的按钮在鼠标经过按钮时如何变成手形,谢谢!

问题描述 ASP.NET中GridView的按钮在鼠标经过按钮时如何变成手形,谢谢! 解决方案 解决方案二:设置按钮样式b/s按钮的样式style="cursor:pointer"c/s按钮的Cursor属性,设置为Hand解决方案三:该回复于2016-07-01 17:25:24被版主删除解决方案四:$('.btn').mouseover(function(){$(this).css('cursor','pointer');}).mouseout(function(){$(this)

对话框-VC++美化按钮,绿色大按钮用的是什么技术?

问题描述 VC++美化按钮,绿色大按钮用的是什么技术? 很多软件都有绿色大按钮,和button控件很不同,MFC对话框中怎么模仿呢? 解决方案 参考:http://blog.csdn.net/jiht594/article/details/7448010 解决方案二: 用贴图的方式,很多界面库都有提供