我有一个表单(Form1),它有30个控件.当我按下一个按钮时,我想删除这30个按钮并在表单上放置其他控件.现在,我的问题是这会变慢.
我有这个列表,其中包含我要删除的控件,并使用For Each运行它们.
Private Sub ClearControls()
'removing the controls from Me.Controls
For Each Control As Control In ListToDelete
Me.Controls.Remove(Control)
Next
ListToDelete = New List(Of Control)
End Sub
Run Code Online (Sandbox Code Playgroud)
现在,如果您观看表单,您会看到控件被1删除1.此操作大约需要0.4秒(使用内置秒表计时)并且时间太长.
是否有任何解决方案可以更快地删除控件,或者只能逐个删除控件?
也许一个重要的事实是一切都与数据库相关联.控件由我自己定义的类(TableDrawer)创建,它创建一个矩形或圆形(取决于数据库中的信息).我将自制控件添加到表单中,当我想删除它们时,需要0.4秒才能在表单上获取其他控件 - 同时使用我的数据库中的信息.
希望这可以解决一些问题,我希望你能帮助我...它真的要快一点(我希望得到0.1秒或更低)
我正在开发一个从串口读取东西的应用程序(COMM-port).简而言之,它的工作方式如下:当您在酒吧或餐厅工作时,在您可以在注册表中输入内容之前,您必须扫描一种卡片.如果此卡返回一个好的号码,您可以输入一些内容.
因此,必须有一个表格可以监听串口并检查是否有人扫描了一张卡,以及它是否是一张拥有良好权利的卡.
如果该人拥有良好的权利,则可以关闭该表格并调用另一种表格.
现在,在代码中:
这里加载了MenuForm(读取正确代码后必须可访问的表单).我打电话给frmWaiterKey出现.
Private Sub frmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim oForm As frmWaiterKey = New frmWaiterKey()
oForm.ShowDialog()
End Sub
Run Code Online (Sandbox Code Playgroud)
类frmWaiterKey的代码:
Private Sub frmWaiterKey_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
nameArray = SerialPort.GetPortNames
OpenComPort()
AddHandler myComPort.DataReceived, SerialDataReceivedEventHandler1
End Sub
Sub OpenComPort()
Try
' Get the selected COM port's name
' from the combo box.
If Not myComPort.IsOpen Then
myComPort.PortName = _
nameArray(0).ToString()
' Get the selected bit rate from the …Run Code Online (Sandbox Code Playgroud) 我在Visual Studio中工作 - VB.NET.
我的问题是我想要删除SQL Server中的特定行,但我唯一的唯一列是自动递增的标识.
我的工作流程:
1.我在列中添加一行(标识正在递增,但我不知道数字)
2.我想删除上一行
每个新记录都有一种唯一的ID吗?我的表可能有2个完全相同的记录,只是序列(标识)不同.
任何想法如何处理这个问题?