返加值?

nplgy 2004-10-05 09:38:28
有一个查询用户的WinForm窗体fmUser,现有多个WinForm窗体如fmA、fmB都需要调用fmUser用得到User_id的值,请问大虾,怎么办?
...全文
75 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
捏造的信仰 2004-10-06
  • 打赏
  • 举报
回复
不推荐楼主这样的方式。我觉得你应该构造一个UserManager类,相关窗体持有对它的引用。
BlueLevin 2004-10-06
  • 打赏
  • 举报
回复
不太清楚你的程序的结构。但是把一个需要大量引用的数据放在窗体中是不方便的。在一个应用程序中可能会有很多数据需要大量地被重复使用。你可以建一个类来管理它们。

比如:当fmUser得到User_id时,你将User_id保存到某个类中。然后保存到什时间,可以被哪些对像调用,用什么方式销毁,都将是非常方便的。
阿云ivan 2004-10-06
  • 打赏
  • 举报
回复
建一个module,然后定义个全局变量,把你需要保存的信息写进去,需要时进行调用就可!
nplgy 2004-10-06
  • 打赏
  • 举报
回复
我也想到这个办法,就是在主窗口设一个变量来保存是fmA还是fmB调用。但是若fmA和fmB都打开且调用fmUser,就不行了
mqmmx 2004-10-06
  • 打赏
  • 举报
回复
我是这样做的,在主窗体里加一个状态条(StatusBar)用来保存登入时的信息(用户名等),这样的方法是不是可行。
huguohong 2004-10-06
  • 打赏
  • 举报
回复
'上面样例有误,续--------


Public Class C_User

'定义委托

Public Delegate Sub UserChangeEventHandler(ByVal sender As Object, ByVal strUserId As String)

'定义事件

Public Event UserChange As UserChangeEventHandler

'广播事件

Protected Sub OnUserChange(ByVal strUserId As String)
RaiseEvent UserChange(Me, strUserId)
End Sub


End Class

Public Class C_A 'C_B,C_C,C_D一样处理
Public Sub New(ByVal clsUser As C_User)

AddHandler clsUser.UserChange, New C_User.UserChangeEventHandler(AddressOf OnUserChange)
End Sub

Private Sub OnUserChange(ByVal sender As Object, ByVal strUserId As String)

End Sub

End Class
huguohong 2004-10-06
  • 打赏
  • 举报
回复
我对nplgy (老李) 提出的问题的意思不是非常清楚,
我仅根据我的理解发表一些看法:

有多个窗体(类)(如 frmA, frmB, frmC......等)需要获得某个类(如 frmUser)的一些信息

我建议为 frmUser类 定义一个委托,当UserId 发生变化时,广播到已经登记的外部对象。
这样做的好处是,不论有多少客户窗体(或类,如 frmA,frmB,frmC....),均不用更改程序结构。

样例:



public class C_User
public delegate UserChangeEventHandler(byval sender as object, byval strUserId as string)




end Class
chenc82 2004-10-05
  • 打赏
  • 举报
回复
窗体1:fmuser
Public User_id As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f2 As Form2 = New Form2(Me) '直接把Form对象传递到Form2
f2.Show()
Me.Hide()
End Sub



窗体2:FmA

Private User_id as Integer
Private frm1 as fmUser
Public Sub New(fm as fmUser)
User_id = frm.User_id '从窗体1向窗体2传值
fm1=fm
End Sub

Private Button_OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
fm1.User_id = User_id '从窗体2向窗体1返回值
fm1.Show()
Me.Close()
End Sub
随机开仓,止盈1~2个点,止损1~20个点能实现盈利正期望吗?《从编程小白到量化宗师之路》系列课程是一套综合性实战课程,涵盖股票,期货,虚拟货币等的交易方法和策略手段。《m单位止盈 n单位止损的方式,能不能实现盈利?》是本系列的第四个中级课程。本网站的课程宗旨是缩短个人或小型投资者与大型机构投资者之间的的差距。课程内容从交易者经常见到,经常思考的问题开始,通过分析成交后的盈亏分布,建立模型,刻画问题,并对问题以数学的方式进行了表达。从而得出结论。与市面上的其他理论课程不同,本课程注重实战,注重结果,全部模型代码均已经上传发表,学员上课后,可以使用自己的tick数据,进行分析。如果获取tick数据有疑问,可以参考课程:《期货CTP高频数据Tick下载》 https://edu.csdn.net/course/detail/24783本课程能够解答的问题有:1)请问1单位止盈,3单位止损的系统是否能实现正期望值? https://www.zhihu.com/question/423194389/answer/14989174122)抢帽子交易是什么意思?为什么有的人能够成功,说是取款机,而有的人说风险巨大,是老虎机。看过这个课程,您将会知道:a) 这类问题的究极解决方案,直达问题核心,不再纠结原因b)构建一段时间可用的交易策略c)知道“没有不变的策略”的原因  

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧