问一个实际应用的问题

tihua 2005-03-08 01:41:57
在FORM1的一个DATAGRID里按一下“F9”键时,弹出FORM2,然后从FORM2中选取需要的数据(数组)返回给Form1的datagrid,然后关掉form2.

类似以上的做法是否要写多个Form2,(假如类似form1这样的表单很多)?
...全文
121 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tihua 2005-03-08
  • 打赏
  • 举报
回复
例如??
Night_Elf 2005-03-08
  • 打赏
  • 举报
回复
你只要搞清楚一点,任何Form都是一个类,你只要知道类之间是如何传递变量和实例就可以了(都可以通过属性来传递)
tihua 2005-03-08
  • 打赏
  • 举报
回复
楼上的,假如FormA改成了FormC,还能用FormB给FormC传值吗?

Public Class FormB
Inherits System.Windows.Forms.Form
......
Public frmA As FormA'这里不是得变成FormC了,可它不会自已变呀?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.TextBox1.Text= frmA.TextBox1.Text'这里呢?
End Sub
End Class

FormB不知道要传值给谁呀?怎样让它知道呢?
Night_Elf 2005-03-08
  • 打赏
  • 举报
回复
窗体间的引用,举个例子:

在FormA中
Public Class FormA
Inherits System.Windows.Forms.Form
...
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim frmB As New FormB
frmB.frmA = Me'这里传递实例
frmB.ShowDialog()
End Sub
End Class

在FormB中,
Public Class FormB
Inherits System.Windows.Forms.Form
......
Public frmA As FormA
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.TextBox1.Text= frmA.TextBox1.Text
End Sub
End Class

而对于datagrid中按"F9"健,弹出窗体,可以重写 dataGrid的ProcessCmdKey事件来完成,例:

Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If keyData = Keys.F9 Then
MessageBox.Show("asdf")
End If
End Function
hamadou 2005-03-08
  • 打赏
  • 举报
回复
写一个通用的函数吧,该函数来负责指定表样式,绑定相关的列。这样可以重复使用的。
tihua 2005-03-08
  • 打赏
  • 举报
回复
to:little_iwf(陀螺)
能简单举个例子吗?
little_iwf 2005-03-08
  • 打赏
  • 举报
回复
Form2 的初始化过程加参数,在代码里判断,就不需要写多个了

注: 参数可以是 Form1 的引用 和 Form1 的数据表单类型引用等等.
其实类似窗体互调用问题.
wxqq2001 2005-03-08
  • 打赏
  • 举报
回复
得到:按一下“F9”键 好像有些难

16,554

社区成员

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

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