一个让我抓狂的问题,源码详见附件.谁能帮我解决,50分当场赠送!!!!!!!!!!!!!

sdzzxuyawei 2007-12-24 11:09:49
一个让我抓狂的问题,源码详见附件.谁能帮我解决,50分当场赠送!!!!!!!!!!!!!
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
anticlimax 2007-12-29
  • 打赏
  • 举报
回复
form_a窗体也是一个类,使用类必须要实例化,所以要new一下,当然,由于VB语言的特殊性,可以不new直接用
form_a.show也可以的
sdzzxuyawei 2007-12-25
  • 打赏
  • 举报
回复
由于初学VB.NET对于上面的代码我看得似懂非懂,能详解一下为什么要这样改吗? 我只是把代码粘过来用是可以,但我这样猪八戒吃人参果,食而不知其味啊.
ping502 2007-12-25
  • 打赏
  • 举报
回复
樓上的為什麼要加到new裡才行啊?
wzuomin 2007-12-25
  • 打赏
  • 举报
回复
按如下方式修改后:

1、form_a中ComboBox1_SelectedIndexChanged仅执行一次
2、改变form_b中列表的选中项不会影响form_a中的列表


Imports System.Data
Imports System.Data.OleDb

Public Class Form_main
Public my_table As New DataTable

Private Sub AToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AToolStripMenuItem.Click
Dim f As New Form_a(Me.my_table)
f.MdiParent = Me
f.Show()
End Sub

Private Sub BToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BToolStripMenuItem.Click
Dim f As New Form_b(Me.my_table)
f.MdiParent = Me
f.Show()
End Sub

Private Sub Form_main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn_str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"
Dim sql As String = "select * from test_table"
Dim conn As New OleDbConnection(conn_str)
Dim dap As New OleDbDataAdapter(sql, conn)
conn.Open()
dap.Fill(my_table)
conn.Close()
End Sub
End Class

Public Class Form_a

Sub New(ByVal dt As System.Data.DataTable)

' 此调用是 Windows 窗体设计器所必需的。
InitializeComponent()

' 在 InitializeComponent() 调用之后添加任何初始化。
Me.ComboBox1.DataSource = dt
Me.ComboBox1.DisplayMember = "text_list"
Me.ComboBox1.SelectedIndex = 0
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
MsgBox("窗体A中的ComboBox1_SelectedIndexChanged事件被触发了!")
End Sub

Private Sub Form_a_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
End Class

Public Class Form_b

Private Sub Form_b_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Public Sub New(ByVal dt As System.Data.DataTable)

' 此调用是 Windows 窗体设计器所必需的。
InitializeComponent()

' 在 InitializeComponent() 调用之后添加任何初始化。
Me.ComboBox1.DataSource = dt
Me.ComboBox1.DisplayMember = "text_list"
Me.ComboBox1.SelectedIndex = 0
End Sub
End Class
ping502 2007-12-25
  • 打赏
  • 举报
回复
你以为我不想给吗? 给了分不就结贴了吗,那还怎么留言啊.
==============
你可以發信息給那個高手。。。
sdzzxuyawei 2007-12-25
  • 打赏
  • 举报
回复
你以为我不想给吗? 给了分不就结贴了吗,那还怎么留言啊.
ping502 2007-12-25
  • 打赏
  • 举报
回复
我也覺得樓主不厚道。人家幫你解決的問題應該給分才對。
longxunsoft 2007-12-25
  • 打赏
  • 举报
回复
给了分再问

16,549

社区成员

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

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