新手问题,请大侠都进来看看 先到先得 谢谢

问题描述

privatestringPawread(){stringusername="";frmMainfrmmain=newfrmMain();username=frmmain.toolStripStatusLabelUser.Text.ToString();//在此句设断点调试发现username=""this.textBox1.Text="";stringconnectionString=@"DataSource=CHINA-2FD3DC67C;InitialCatalog=Test;IntegratedSecurity=True;Pooling=False";SqlConnectionmyConnection=newSqlConnection(connectionString);myConnection.Open();SqlCommandmyCommand=myConnection.CreateCommand();stringsql="selectpasswordfromt_userwhereusername='"+username+"'";myCommand.CommandText=sql;SqlDataReadermyDataReader=myCommand.ExecuteReader();stringpsw="";if(myDataReader.HasRows){while(myDataReader.Read()){psw=myDataReader["password"].ToString();}}myDataReader.Close();myConnection.Close();returnpsw;}//这是frmMain的相关代码运行无错可显示toolStripStatusLabelUser.Text内容privatevoidfrmMain_Load(objectsender,EventArgse){Form1form1=newForm1();form1.ShowDialog();if(form1.IsLogin){this.toolStripStatusLabelUser.Text=form1.CurrentUser.Username;this.toolStripStatusLabelTime.Text=System.DateTime.Now.ToString();}else{this.Close();}}

请问为什么不能显示frmmain.toolStripStatusLabelUser.Text内容在frmMain.Designer.cs中已改为publicSystem.Windows.Forms.ToolStripStatusLabeltoolStripStatusLabelUser;如果将username=frmmain.toolStripStatusLabelUser.Text.ToString();改为username=form1.CurrentUser.Username;一样不行谢谢

解决方案

解决方案二:
飘过.............
解决方案三:
frmMainfrmmain=newfrmMain();你是先运行的这个窗体,让frmmain.toolStripStatusLabelUser.Text先有值,你才会在另一个窗体的Pawread类里获取到值,我刚才试了一下,是可以获取到值的(方法没错,其实想获取当前用户有很多可以实现的方法)
解决方案四:
风吹草动
解决方案五:
是窗体传值吗,试一下用构造函数吧,我没看见你传值啊,你却要取值,怎么可以呢,关于窗体传值,看看我的博客吧,我写了一个系列
解决方案六:
frmMainfrmmain=newfrmMain();

后面应该加上:frmmain.ShowDialog()

另外:username=frmmain.toolStripStatusLabelUser.Text.ToString();应改为:username=frmmain.toolStripStatusLabelUser.Text;因为frmmain.toolStripStatusLabelUser.Text本身为string类型.
解决方案七:
楼上的貌似有理可我的frmmain里面也调用了frmlogin了啊运行到frmMain.ShowDialog()就调出frmlogin了成死循环了
解决方案八:
引用3楼luofuxian的回复:

风吹草动

见牛羊
解决方案九:
我是这么理解你的意图,你有一个窗体frmMain(我怀疑应该是FormMain吧)。你还有一个Form1。Password()方法是Form1上的。我猜Form1是用来输入密码的对话框。那么,你应该是希望frmMain在启动的时候调用用Form1来输入密码,并验证。而用户输入用户名是在Form1。如果我理解的没有错的话,应该这么改(原理我就不解释了,想要求甚解的话,可以多去看些面向对象的基础知识。)://1.添加一个成员变量privateinputUsername;privatestringPawread(){stringusername="";//2.下面两句不要了//frmMainfrmmain=newfrmMain();//username=frmmain.toolStripStatusLabelUser.Text.ToString();//3.改成下面这一句:username=inputUsername;//4.下面该干嘛还干嘛不用改}//5.新写一个构造函数publicForm1(stringusername){inputUsername=username;//6.下面是你构造函数里原来的东西,都copy过来就可以。}//7.改一下frmMain的代码privatevoidfrmMain_Load(objectsender,EventArgse){//8.改下面这一句Form1form1=newForm1(toolStripStatusLabelUser.Text.ToString());//9.后面不用改}

解决方案十:
你的代码开头就不对。在主窗口加载的时候已经把username传给了form1中的username去了。可你在开始的时候又写了句stringusername="";这不是又把它赋为空值了吗?改为publicstringusername;设为公共变量下面的这句话就不要了:frmMainfrmmain=newfrmMain();username=frmmain.toolStripStatusLabelUser.Text.ToString();试试看把
解决方案十一:
看看!!!
解决方案十二:
谢谢大家指点我的想法是frmMain是主窗体form1是登录窗体frmchange为修改密码登陆后在frmmain.toolStripStatusLabelUser.Text显示登录用户名成功但在frmchange中就不能调出form1的CurrentUser.Username也不能调出frmMain的frmmain.toolStripStatusLabelUser.Text

时间: 2024-10-03 06:16:02

新手问题,请大侠都进来看看 先到先得 谢谢的相关文章

各位大侠都进来看看 小弟刚接触java不久 请帮帮忙

问题描述 1.写一个socket程序服务器端:启动后初始化socket在某个端口上侦听接收到客户端连接后启动一个线程用于收发数据.2.写一个示例程序:初始化串口.设置串口参数.启动线程不断读取串口数据并将数据存储到文件中3.数据表TreeTable字段为:IdparentIdName其中parentId为-1的表示根节点例子如下:IdparentIdName1-1总署21深圳海关32罗湖海关42梅林海关51广州海关61天津海关要求:从数据库TreeTable表读取出数据并显示到TreeView中

DataGrid焦点如何转移,请大侠帮个解答下。

问题描述 如题,我是新手.请大侠帮我解答下:我在使用TAB使DataGrid获得焦点后,继续按tab键焦点会在DataGrid的小格子里跳,请问如何操作能让我使用TaB键后跳出整个DataGrid而落到From其他的控件上呢? 解决方案 解决方案二:兄弟我没有用过c#,但是我知道,当你的DataGrid得到焦点后,可以设置别的控件得到焦点.类似于if(Key=VK_Tab)and(activecontrol=DBGrid1)thenbeginbutton1.SetFocus;end;你查下c#如

c++新手,请大神提供思路

问题描述 c++新手,请大神提供思路 如何获得用户的登录信息,从而获得用户的基本信息:比如如何从教务网登陆界面获得学生登录信息从而查看该生的基本信息? 解决方案 可以用抓包工具抓个包,得到提交的数据,然后可以用CInternetSession类相关的模拟提交即可. 解决方案二: 如果你连socket,wininet等什么都不会的话,建议使用Wireshark等抓包软件抓包并分析,它里面对报文封包分析的很详细的. 解决方案三: C++发送HTTP请求,可以用WInHttp类库等,获取对应的页面返回

前端开发-前端网站>基金走势图怎么做出下图的效果,请大侠们说一说!

问题描述 前端网站>基金走势图怎么做出下图的效果,请大侠们说一说! 5C 开发-前端网站>基金走势图怎么做出下图的效果,请大侠们说一说!-web前端开发网站"> 解决方案 可以使用chart.js这个库实现你要的图表 如果我的回答帮助了您,或者您希望得到进一步的回答,请先采纳这个回答.方法是光标移动到右边,点击采纳即可.这个步骤轻而易举,绝不耽误您宝贵的时间.采纳我的回答还有有如下好处:(1)得到进一步深入的回答(2)同时增加您的经验和人品(3)毫不耗费您的积分 解决方案二:

c++ primer...-C++新手,请大家为我解答第二题!非常感谢

问题描述 C++新手,请大家为我解答第二题!非常感谢 请大家给我解答一下第二题!谢谢了,还有为什么我看C++ primer plus这本书前面教的我都懂就是到练习题不会做了? 解决方案 #include <iostream>using namespace std;int main(){ cout << ""please enter long:"" << endl; double l; cin >> l; cout &l

ajax-jquery为啥同一页面只能调用一次?请大侠指点。

问题描述 jquery为啥同一页面只能调用一次?请大侠指点. 代码如上,有两个链接(是举例的),点一次链接1数据可以在DIV那里正常显示,再点链接2数据就不显示了,意思是aaa函数只能正常调用一次,getData.do代码省略,返回的JSON数据没问题,而且第二次点击链接system.out.println();可以返回正常的json值,但div那里数据不更新.请大侠帮忙找找问题,也许描述有点不太清楚,请加我QQ:78054,万分感谢. 解决方案 刚看过代码,感觉是,你table数据,设定的id

c++新手,请大家帮忙看一看代码哪错了

问题描述 c++新手,请大家帮忙看一看代码哪错了 要求:用户输入一段话,输出每个单词出现的次数如输入:hello my friend . I miss you my friend输出:单词 次数 hello 1 my 2 friend 2 I 1 miss 1 you 1 #include #include #include using namespace std; int main(){ string sen;//用来记录用户输入的句子string word[100];int ab;int t

isis协议-ISIS问题详细描述,请路由协议高手进来看看帮忙解决下,谢谢了

问题描述 ISIS问题详细描述,请路由协议高手进来看看帮忙解决下,谢谢了 第一张图,是网络拓扑图和抓包口,都在图里,请大家看看,指定路由器和路由器间如何连接,配置的IP我都写在里面的第二张图,分别是进四台路由器,show clns neighbors,show clns is-neighbors,show isis data 所输出的结果. 第三至五张图 ,分别是R1的f0/0,R2的f1/0,R3的f1/0口的抓包. 接下来我想提点问题,首先,所有路由器都设置为L1,然后R2我设置为指定路由器

notepad++ eclipse-我是java新手,请哪位大神解答。

问题描述 我是java新手,请哪位大神解答. 一个是用notepad写的,第二个是用eclipse SE写的.为什么用eclipse SE写的用StringBuffer接收int数组元素就报错??用notepad就不会.运行环境1.7,编译器也是1.7.但是我用EE它又没事了.请问我的eclipse SE哪里配置错了吗?? 解决方案 你上传的这第二张图片看不清,能重新发一张或者发代码么. 解决方案二: 因为你有不同版本的eclipse,里面的jre不同,把jre对应上就行了,尤其是用到strin