CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

再 vb.net 不同的窗体中 如何进行数值的传递?

楼主netice_cn(网冰)2006-03-12 11:14:30 在 .NET技术 / VB.NET 提问

再   vb.net   中   如何进行数值的传递?      
  比如   :   一个用户再登陆窗口     输入了     a  
  如何在进入主窗口里,调用   a   ?    
   
  需要用什么方法能记住     a     ?? 问题点数:30、回复次数:10Top

1 楼programart_life(理论派)回复于 2006-03-12 11:26:57 得分 15

我是用两个办法的  
  1、添加一个Modular,在那里定义需要的Public(Global)形变量。(数据比较多,且很多窗口要用到时)  
  2、利用窗口的Tag属性传递,代码如下形式  
  dim   frm   as   你的窗口  
   
  if   isnothing(frm)   orelse   frm.isdisposed   then  
        frm=new   你的窗口  
  end   if  
   
  if   frm.showdialog()=dialogrTop

2 楼programart_life(理论派)回复于 2006-03-12 11:30:47 得分 0

汗,按错键了,代码还没写完就发了。  
   
  dim   frm   as   你的窗口  
   
  if   isnothing(frm)   orelse   frm.isdisposed   then  
        frm=new   你的窗口  
  end   if  
   
  if   frm.showdialog()=dialogrusult.ok   then  
        在这里取得frm.tag属性值,并处理他  
        frm.dispose()'//在这里销毁窗口  
  end   if  
   
  你的窗口在单击OK按钮的处理程序里要整合各需要的值,再放入窗口的Tag  
  例如个值之间用一个不常用的字符分隔开来。  
  也许你可以把一个数组传如Tag,那样更方便,但是我没有这么做过,所以具体Tag能否放数组我就不清楚了。Top

3 楼lhx1977(清水无鱼)回复于 2006-03-12 11:32:35 得分 9

是那个地方定义成public   static   的变量,都可以在不同的窗体之间使用。  
  一般情况是写一个公用的类比较好。  
  Top

4 楼programart_life(理论派)回复于 2006-03-12 11:40:06 得分 0

如果数据项很多,你可以在上面程序取得Tag的地方直接取窗口里各控件的值。  
   
  例如  
  你的登陆窗口有一个用户名TextBox,名称为txtUserName,一个密码TextBox,名称为txtPassword,一个隐身登陆的CheckBox,名称chkHide。你需要取得txtUserName和chkHide  
  就可以这么写  
   
  a=frm.txtUserName.Text  
  b=CheckBox.value  
   
  但是这样会不会造成问题我就不清楚了,要高手指教。Top

5 楼qingshangren(startman)回复于 2006-03-12 12:20:28 得分 0

我就是netice_cn   (网冰)   如果能解决问题   我可以继续加分!  
  是这样的,这个问题的具体情况我再说一下吧!就是我这里有一个登录窗体(Frmlogin)一个窗体(FrmMain)我想设一个权限还判断两种用户的登录。当管理员登录时可以打开主窗体中所有的子窗体,当一般员工登录时,有一部分子窗体是不能看到的!我用了一个方法:    
        在FrmMain中:Sub   ShowMune(Byval   ShowOrHide   As   Boolean)  
                                MenuItem1.Visible=   ShowOrHide  
                                  MenuItem2.Visble=ShowOrHide  
                                  .........  
                                  End   Sub  
          然后在   窗体加载时调用:    
                Private   Sub   FrmMain_load(ByVal   sender   As   System.ObjectByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                    If   用户=管理员   then    
                    ShowMuen(True)  
  else                
                      ShowMune(False)  
        End   If    
                End   Sub  
  在这个判断中主要是这个条件语句怎么写!  
        在Frmlogin   中有两个TextBox   两Button     分别是:   TbUser,   Tbpwd   ,BtOK,Btclose    
      当我点击TbOK   时在进入主窗体时怎么要把写入TbUser的TbUser.text的值取出并判断此是不是管理员,这里连接了Admin(id   user   pwd   vip   )表中的user字段,并通过它来判断vip的值是还是否!把这个判断传到主窗体中做作为判断条件!  
      在线急等****************Top

6 楼programart_life(理论派)回复于 2006-03-12 13:04:24 得分 0

你自己的思路不是很清楚了么?再套用上面我们提供的方法不就OK了?  
   
  判断部分程序如下(用adodb示例):  
   
  dim   s   as   string'//查询语句  
  dim   rst   as   new   adodb.recordset  
  s="select   *   from   [admin]   where   [user]='"   &   encryp(tbUser.text)   &   "'   and   pwd='"   &   encryp(tbpwd.text)   &   "'"  
  rst.open   s,数据库链接  
   
  if   rst.eof=rst.bof   then  
          用户名或密码错误  
  else  
          如前面几帖所说,假如你定义了全局变量txtUser  
          txtUser=tbUser.text  
          if   txtuser="管理员"   then  
                  showmenu(true)  
          else  
                  showmenu(false)  
          end   if  
  end   if  
   
  上面的程序encryp是假定的你数据库中用户名和密码是用encryp加密的。加密程序如下  
  function   encryp(byval   s   as   string)   as   string  
          加密程序体,并且return加密后的字串  
  end   function  
   
  登陆窗口关闭后,其他窗口可以通过全局变量txtUser取得当前登陆用户的名称。Top

7 楼yasmong()回复于 2006-03-12 15:53:18 得分 0

支持楼上Top

8 楼mchp(火狐)回复于 2006-03-12 15:54:49 得分 6

两个窗口  
  Form1   要将TextBox1的值传给Form2  
  Private   Sub   Button1_Click()   Handles   Button1.Click  
                  Dim   f   As   Form2   =   New   Form2(TextBox1.Text)  
                  f.Show()  
  End   Sub  
   
  Form2   重载构造函数   ,接受值,同理可传多个  
  Public   Sub   New(ByVal   str   As   String)  
   
          MyBase.New()  
          InitializeComponent()  
   
          dim   s   as   string   =   str  
  End   Sub  
  Top

9 楼de98441201(雪貂)回复于 2006-03-12 17:13:39 得分 0

可以用代表或事件   也可一实现不过比较麻烦Top

10 楼qingshangren(startman)回复于 2006-03-13 09:34:23 得分 0

多谢各位的帮助啊!我是这么想的,我就是想定义了个变量,dim   x   as   boolean  
  让X在用户在Textbox1中输入用户名是,接收到该用户的vip的值,并把这个值传到FrmMain中作为判断条件。不是知道代码怎么写,多谢了啊!等呢!Top

相关问题

  • 窗体间动态传递数值问题
  • 多个窗体之间来回切换时数值之间的传递问题
  • vb中向窗体传递参数(不使用公用变量)?
  • 在VB的窗体之间传递变量的值...
  • vb窗体
  • vb的主窗体的数组值如何传递到另一个不同的窗体?请指教!
  • VB新手请教:如何在几个窗体之间传递参数?
  • 窗体中的值传递
  • vb窗体问题
  • vb窗体问题??

关键词

  • vb.net
  • 用户
  • 加密
  • 代码
  • 密码
  • 窗体
  • encryp
  • frm
  • tbuser
  • 变量

得分解答快速导航

  • 帖主:netice_cn
  • programart_life
  • lhx1977
  • mchp

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo