我需要知道我刚刚点击vb 2010的对象的名称我可以使用DirectCast(发件人,控制).ID,但是我需要这样做是2008年而.ID不存在在2008年
我需要
的等价物lblPatient.Text = DirectCast(sender, Control).ID
'写在vb 2010 visual web deveoper
对于vb 2008
代码
Imports System.Data.SqlClient
Imports System.Data
Public Class FormRm3A
Dim Labels(40) As Label
Dim X As Integer
Dim Y As Integer
Private Sub FormArrayTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
i = 1
For Me.Y = 1 To 5
For Me.X = 1 To 8
'creates new textbox
Labels(i) = New Label()
'set its properties
Labels(i).Width = 50
Labels(i).Height = 35
Labels(i).Left = X * 49
Labels(i).Top = 30 + (Y * 34)
Labels(i).BorderStyle = BorderStyle.FixedSingle
'add control to current form
Me.Controls.Add(Labels(i))
If Clicky = True Then
AddHandler Labels(i).Click, AddressOf Label1_Click
End If
i = i + 1
Next X
Next Y
Dim con As New SqlConnection
Dim cmd As New SqlCommand
Dim Subject As String
Dim StaffInitials As String
For Session = 1 To 40
Try
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("RoomBookingSystem.My.MySettings.Database1ConnectionString1").ConnectionString
Dim SessionParm As New SqlParameter("Session", Session)
SessionParm.Direction = ParameterDirection.Input
con.Open()
cmd.Connection = con
cmd.Parameters.Add(SessionParm)
cmd.CommandText = "SELECT Subject, StaffInitials FROM PermanantBooking WHERE (Week = 'A') AND(Room = 'Rm3') AND (Session = @Session)"
Dim lrd As SqlDataReader = cmd.ExecuteReader()
While lrd.Read()
Subject = Convert.ToString((lrd("Subject").trim))
StaffInitials = Convert.ToString((lrd("StaffInitials").trim))
Labels(Session).Text = Subject & "" & vbNewLine & StaffInitials
End While
'Catch ex As Exception
' MsgBox("" & ex.Message)
'here if there is an error it will go here (can use Msgbox or lable)
Finally
cmd.Parameters.Clear()
con.Close()
End Try
Next
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim objectID As String
objectID = DirectCast(sender, Control).ToString
Day =
Period = X
FormMakeBookingDetails.Show()
Me.Hide()
End Sub
End Class
答案 0 :(得分:0)
ASP.NET 3.5已经有this property(自1.1()以来实际存在Control.Id
),因此您的代码应该没有问题。
你能展示完整的代码和例外吗?
修改强>:
既然你已经提到过你正在使用visual web deveoper,我错误地认为你使用的是ASP.NET。实际上你正在使用Winforms。与ASP.NET不同,Winforms中没有Id
属性。也许您想使用Name
property代替(自1.1以来可用)。