VB.NET事件未触发

VB.NET事件未触发,vb.net,Vb.net,我收到了另一个开发者的项目。长话短说,该程序从我们内部网络上托管的SQL数据库中提取数千个条目。该程序显示条目,并允许您为方便起见对其进行筛选 最近我们遇到了一个问题,SQL数据库中的一个表被清除了(通常每天都会重新生成,但有几天它是空的。)发现了这个问题并解决了它(没有对VB项目进行任何更改)以重新填充该表;但从那时起,VB项目将不再触发事件 这个程序有几千行代码,所以我不能发布全部内容;但我会尽力给出症状: 表单对象可以触发事件(表单关闭、表单关闭等) 现有控件(单选按钮、按钮、图片盒、数据

我收到了另一个开发者的项目。长话短说,该程序从我们内部网络上托管的SQL数据库中提取数千个条目。该程序显示条目,并允许您为方便起见对其进行筛选

最近我们遇到了一个问题,SQL数据库中的一个表被清除了(通常每天都会重新生成,但有几天它是空的。)发现了这个问题并解决了它(没有对VB项目进行任何更改)以重新填充该表;但从那时起,VB项目将不再触发事件

这个程序有几千行代码,所以我不能发布全部内容;但我会尽力给出症状:

  • 表单对象可以触发事件(表单关闭、表单关闭等)
  • 现有控件(单选按钮、按钮、图片盒、数据网格视图等)不会触发任何事件
  • 如果我添加一个新控件(例如按钮),它将不会触发事件
  • 如果在应该激发的子节点上放置调试断点,则不会中断 下面是一个应激发但未激发的方法示例:

    `Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox("GOT IT!")
    End Sub`
    
    以下是表格_loadsub:

    <DllImport("user32.dll")> _
    Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    End Function
    
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        InitializeComponent()
        Try
            DataGridView_Items.RowsDefaultCellStyle.SelectionBackColor = Color.Yellow
            DataGridView_Items.RowsDefaultCellStyle.SelectionForeColor = Color.Black
            CheckBox_Highlight.DataBindings.Add("Visible", RadioButton_BD, "Checked")
            Try
                'Populates the DGV
                LoadTable()
                TableLayoutPanel_BD_Parts.Visible = True
                TableLayoutPanel_PF_Parts.Visible = False
    
                'Exits if no data was pulled from the database
                If dbDataSet.Rows.Count = 0 Or pfDataSet.Rows.Count = 0 Then Application.ExitThread()
    
            Catch ex As Exception
                Using w As StreamWriter = File.AppendText(logFile)
                    Log("Function Form1_Load says " & ex.Message & " @ " & DateTime.Now.ToString("yyyy-MM-dd") & "_" & DateTime.Now.ToString("HH-mm-ss"), w)
                End Using
            End Try
    
            BackgroundWorker1.RunWorkerAsync()
            formLoaded = True
        Catch exx As Exception
            MsgBox(exx.ToString())
        End Try
    
    End Sub
    
    _
    私有共享函数SendMessage(ByVal hWnd作为IntPtr,ByVal wMsg作为Integer,ByVal wParam作为Integer,ByVal lParam作为Integer)作为Integer
    端函数
    私有子表单1_Load(发送方作为对象,e作为事件参数)处理MyBase.Load
    初始化组件()
    尝试
    DataGridView_Items.RowsDefaultCellStyle.SelectionBackColor=Color.Yellow
    DataGridView_Items.RowsDefaultCellStyle.SelectionForeColor=Color.Black
    复选框\突出显示.数据绑定.添加(“可见”,单选按钮\选中”)
    尝试
    '填充DGV
    加载表()
    TableLayoutPanel_BD_Parts.Visible=True
    TableLayoutPanel\u PF\u Parts.Visible=False
    '如果没有从数据库中提取数据,则退出
    如果dbDataSet.Rows.Count=0或pfDataSet.Rows.Count=0,则Application.ExitThread()
    特例
    使用w作为StreamWriter=File.AppendText(日志文件)
    日志(“函数Form1_Load says”&ex.Message&“@”和DateTime.Now.ToString(“yyyy-MM-dd”)&“&DateTime.Now.ToString(“HH-MM-ss”),w)
    终端使用
    结束尝试
    BackgroundWorker1.RunWorkerAsync()
    formLoaded=True
    捕获exx作为异常
    MsgBox(exx.ToString())
    结束尝试
    端接头
    
    有一个backgroundworker,但它似乎工作正常并退出

    所有形式都可以交互;但不要触发事件。(我可以更改单选按钮的选择、单击按钮、在文本框中键入内容等)

    我知道这有点含糊不清,我只是希望有人能给我一些建议,让我可以研究一下可能导致这种情况的原因。我可以提供细节;但我不能在这里复制整个代码


    谢谢你的帮助

    代码中有一件非常奇怪的事情,那就是从
    表单加载
    调用
    InitializeComponent()
    。 通常在
    表单
    构造函数中调用此方法,因此您可以将其从
    表单加载
    中删除


    我在我的电脑上做了一些测试:如果你调用了两次
    InitializeComponent()
    你复制了表单中的每个控件,它们的事件不再触发,可能是因为你有两个同名的控件。

    你对我可以添加的信息有什么建议吗?我以前从未见过这种情况,可能有人知道会导致事件不发生的不同事情;他们可以分享并解决我的问题。这就是我的希望。您是否尝试过在不同的机器上运行它(也就是说,.NET Framework在一台机器上不知怎么搞砸了,导致了这种情况)?你有一个旧版本的备份,你可以测试它是否有效吗?是的,我已经在3台机器上运行过了。奇怪的是,在SQL数据库出现问题之前工作的二进制文件显示出完全相同的问题。我已经通过监视数据集并手动输入存储过程来验证它是否成功地从数据库中提取条目。我发现了一件奇怪的事情:为什么您在
    Form\u Load()
    中初始化组件()
    ,而不是构造函数?@tezzo是的,您是对的。InitializeComponent()应该在构造函数中。