请大师看这个问题

问题描述

第一段代码:publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}publicstringstr="hfghh";privatevoidbutton1_Click(objectsender,EventArgse){Form2form2=newForm2();form2.Show();form2.Invalidate();}}publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}Form1form1=newForm1();privatevoidForm2_Load(objectsender,EventArgse){}privatevoidForm2_Paint(objectsender,PaintEventArgse){MessageBox.Show(form1.str);//弹出来了MessageBox.Show对话窗口}}第二段代码:publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}publicDictionary<int,string>dic4=newDictionary<int,string>();privatevoidForm1_Load(objectsender,EventArgse){}privatevoidbutton1_Click(objectsender,EventArgse){Form2form2=newForm2();dic4.Add(1,"HaHa");dic4.Add(5,"HoHo");dic4.Add(3,"HeHe");dic4.Add(2,"HiHi");dic4.Add(4,"HuHu");form2.Show();form2.Invalidate();//重绘}}publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}Form1form1=newForm1();privatevoidForm2_Load(objectsender,EventArgse){}privatevoidForm2_Paint(objectsender,PaintEventArgse){foreach(varpairinform1.dic4){MessageBox.Show(pair.Value);//为什么没弹出对话窗口?}}}问题:第二段代码的结构组成和第一段代码应该是一样的,为什么第二段代码不能弹出MessageBox.Show对话窗口呢?谢谢

解决方案

解决方案二:
你第二段代码中新new了一个form1这个form1的dic4是空的。因为没有执行button1_Click
解决方案三:
引用1楼lpingz的回复:

你第二段代码中新new了一个form1这个form1的dic4是空的。因为没有执行button1_Click

第一段代码还是new了一个form1啊,但为什么str没空呢?
解决方案四:
你可以调试下看看你的dic4的值
解决方案五:
引用2楼aw214的回复:

引用1楼lpingz的回复:你第二段代码中新new了一个form1这个form1的dic4是空的。因为没有执行button1_Click第一段代码还是new了一个form1啊,但为什么str没空呢?

你的str赋了初值了。而你的dic4初始化的时候没有数据。
解决方案六:
而且你的字典为空的话,根本执行不到messagebox.show。而第一个里面,就算str为空,也会show出messagebox来的。
解决方案七:
引用4楼lpingz的回复:

引用2楼aw214的回复:引用1楼lpingz的回复:你第二段代码中新new了一个form1这个form1的dic4是空的。因为没有执行button1_Click第一段代码还是new了一个form1啊,但为什么str没空呢?你的str赋了初值了。而你的dic4初始化的时候没有数据。

dic4初始化的时候没有数据,可是Add了得啊!!
解决方案八:
引用5楼lpingz的回复:

而且你的字典为空的话,根本执行不到messagebox.show。而第一个里面,就算str为空,也会show出messagebox来的。

为空指的是为空字符串!!字典为空是指count为0!!!你调试下,在那个click里面加个断点,然后在你的foreach(varpairinform1.dic4)处也加个断点,看看有没add。
解决方案九:
引用7楼lpingz的回复:

引用5楼lpingz的回复:你调试下,在那个click里面加个断点,然后在你的foreach(varpairinform1.dic4)处也加个断点,看看……

我设置过断点,click里面是Add了的,但是foreach处,就没有了,不知道为什么?我估计是字典为空了,但不知为何?
解决方案十:
等待答案
解决方案十一:
引用8楼aw214的回复:

引用7楼lpingz的回复:引用5楼lpingz的回复:你调试下,在那个click里面加个断点,然后在你的foreach(varpairinform1.dic4)处也加个断点,看看……我设置过断点,click里面是Add了的,但是foreach处,就没有了,不知道为什么?我估计是字典为空了,但不知为何?

这么说吧。创建form2的Form1的实例(假设叫A)和你在form2中new的form1的实例(假设叫B)是完全不同的。你在A的click中的向A的dic4赋值。然后创建form2的时候,创建了B,B的dic4是没有项的。

时间: 2024-10-21 16:00:49

请大师看这个问题的相关文章

请大师们看下帮忙解决下此问题 急急急 感谢

问题描述 请大师们看下帮忙解决下此问题 急急急 感谢 每次在VS2012上第一次附加进程时是成功的,调试关闭后第二次附加进程就报图上的错误,如果把VS关闭了重启又能附加进程了,请问这应该怎么解决啊,每次附加进程都要重启VS感觉好麻烦啊 求各位大师指点啊 解决方案 急急急!!!哪位来帮忙啊!!!!!!关于提交socket的问题,请高手帮忙!急急急急.急急

更新-最近学习java的缓存机制,请大家看看我的代码有什么不足

问题描述 最近学习java的缓存机制,请大家看看我的代码有什么不足 一个简单的测试类,如果在高并发下会有问题么 package com.test.cache;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;public class CacheManager { private volatile static CacheManager cacheManager;//缓存类的实例 private long upDa

html-java下拉框 option 个数怎么控制。我各种白请大师指点

问题描述 java下拉框 option 个数怎么控制.我各种白请大师指点 如题.如题.如题如题如题如题如题.如题.如题如题如题如题如题.如题.如题如题如题如题 解决方案 如果你是用jstl或struts2标签的话,Java后台传过来list直接循环生成就ok了 解决方案二: 如题并没有看到题,,你如果想控制select下拉框的option个数的话,,用js动态生成就行了

c# cp lient-写了一个c# TcpClient 连接超时 请大师 吐槽!

问题描述 写了一个c# TcpClient 连接超时 请大师 吐槽! 解决方案 代码最严重的问题是调用th.Abort,不要这么做.另外,没必要死循环轮询,而应该使用异步方法.

雅虎财经数据-麻烦各位大神给看下下面这段代码,运行不起来。请帮忙看下是什么原因(是在Python上运行的)

问题描述 麻烦各位大神给看下下面这段代码,运行不起来.请帮忙看下是什么原因(是在Python上运行的) from matplotlib.finance import quotes historical_yahoo from datetime import date import pandas as pd today=date.today() start=(today.year-1,today.month,today.day) quotes=quotes_historical_yahoo('AXP

问题-请大师帮忙怎么样快速修内插出来的等高线。

问题描述 请大师帮忙怎么样快速修内插出来的等高线. 请大师帮哈忙.谢谢!请大师帮忙怎么样快速修内插出来的等高线.

c++-请帮看一下一道C++的题目。还可另得100C(总计200C)

问题描述 请帮看一下一道C++的题目.还可另得100C(总计200C) 问题如下: 我们要创造一个游戏,这游戏是为了测量玩家在规定时间内能记得多少信息,以下是解析这游戏是如何玩的: 第一步:有两位玩家: 第二步:每个玩家开始都有十分: 第三步:游戏需要提示第一位玩家输入一段话.第二位玩家不允许看. 第四步:程序向第二位玩家展示第一位玩家输入的一段话,然后通过不断换行清除屏幕中的一段话.询问玩家是否准备好答题,如果还不行,就继续展示在屏幕上,这一次留在屏幕的时间会延长.每一次玩家需要再看一遍,玩家

sso-如何Android实现SSO(请耐心看完以下内容再回答)

问题描述 如何Android实现SSO(请耐心看完以下内容再回答) 最近在做公司项目,领导要求做一个单点登录SSO,我查遍整个百度,大概得到都是Android 连接新浪,人人,Oauth 2.0第三方接入,我想自己的项目实现单点登录,原理什么都大概看过,需要详细的解决方案,不需要讲web 应用那一套,我知道web有cook,可以保存,Android怎么实现,求做过的人分享一下,需要钞票,或者积分都可以商量,关键是做出来. 解决方案 我也正要搞这个,毫无头绪,兄台有结果了吗? 解决方案二: @Ov

求数字之间的关系,请大家看下

问题描述 求数字之间的关系,请大家看下 想问下数字: 1 9 3 6 5 3 这些数字之间的关系,该选哪个 A.0 B.3 C.4 D.7 E.9 解决方案 你这文不对题,选项和问题有啥关系啊,你是不是该问后面的数是什么 解决方案二: 我选择A,因为我把他看成时间1936年5月30日!其他就不对! 解决方案三: 这个纯粹是闹着玩的吧,我不知道这个和计算机有什么关系 解决方案四: 1 3 5 7-- 难道是7? 解决方案五: 这种题有一千种答案,那我也给你写一串数字,0000000,问下一个数字,