小编Mar*_*tes的帖子

VB.net停止后台工作

我想创建一个按钮,可以阻止我的后台工作程序并结束它正在处理的所有进程.

这是我的示例backgroundworker代码:

       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

            Try
                If BackgroundWorker1.IsBusy <> True Then
                    BackgroundWorker1.RunWorkerAsync()
                End If
            Catch ex As Exception
            End Try

        End Sub

        Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

            Dim counter As Integer = 1

            Do

            'updated code with stop function----------------
            BackgroundWorker1.WorkerSupportsCancellation = True
            If BackgroundWorker1.CancellationPending Then
                e.Cancel = True
                ProgressBar1.Value = 0
                Exit Do
            End If
            'updated code with stop function----------------

            ListBox1.Items.Add(counter)

            ProgressBar1.Value = ((counter - 1) / limit) …
Run Code Online (Sandbox Code Playgroud)

vb.net backgroundworker

5
推荐指数
1
解决办法
3万
查看次数

以编程方式单击按钮

我想编写一个代码button,button当我点击它时,以编程方式点击另一个.

例如,我有两个按钮命名为Button1Button2,我想要做的是,我点击后Button1,应该点击Button2.这可能吗?

vb.net button winforms

4
推荐指数
3
解决办法
12万
查看次数

VB.net实时时间过去的功能

我已经创建了一个与计算机时间同步的实时时钟,并以标签显示.

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Time.Text = Date.Now.ToString("h:mm:ss tt")
End Sub
Run Code Online (Sandbox Code Playgroud)

我想制作一个实时的经过时间的功能,它继续计算从开始到停止的时间所经过的秒/分钟/小时,它将基于我创建的实时时钟.我会为此创建一个开始和停止按钮.这可能吗?提前致谢.


我现在能够完成所有内容,并添加了一个功能,根据我的实时时钟记录开始和结束时间.这是我的工作代码:

Dim hr, min, sec As Integer

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Time.Text = Date.Now.ToString("h:mm:ss tt")
End Sub

Private Sub Button2_Click(sender As Object, …
Run Code Online (Sandbox Code Playgroud)

vb.net timer countdowntimer

3
推荐指数
1
解决办法
3万
查看次数

VB.net开启和关闭表格

我有一个VB程序有两种形式,我编写了每种形式的表单加载.

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MessageBox.Show("I AM FORM 1")
End Sub

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MessageBox.Show("I AM FORM 2")
End Sub
Run Code Online (Sandbox Code Playgroud)

这是我如何切换Form1和Form2,我使用了一个按钮.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Me.Hide()
    Form1.Show()

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Me.Hide()
    Form2.Show()

End Sub
Run Code Online (Sandbox Code Playgroud)

但每次我切换表单时,表单加载事件只会触发一次.我的代码有问题吗?我猜到了Me.Hide()只会隐藏上一个表格而不是完全关闭它.我希望能够关闭以前的表单,以便当我再次打开它时,表单加载事件将再次触发.

vb.net winforms

2
推荐指数
1
解决办法
6万
查看次数

VB.net将值设置为backgroundworker中的标签

我的代码有效,但我怀疑我做了什么,因为我将CheckForIllegalCrossThreadCalls设置为false,我认为这会给我的后台工作者带来一些副作用.这是我的示例代码:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False

End Sub

Private Sub go_Click(sender As Object, e As EventArgs) Handles go.Click

    Try
        If BackgroundWorker1.IsBusy <> True Then
            BackgroundWorker1.RunWorkerAsync()
            resetevent.Set()
        End If

    Catch ex As Exception

    End Try

End Sub


Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

    Do

    Label1.Text = x
Label2.Text = Label1.Text
Label3.Text = Label2.Tex
Label4.Text = Label3.Text
Label5.Text = Label4.Text

    x+=1
    Loop While (x < 100)


End Sub

Private Sub …
Run Code Online (Sandbox Code Playgroud)

vb.net backgroundworker

1
推荐指数
1
解决办法
6998
查看次数

VB.net ReDim Preserve的替代方式

我的程序确实有效,但我认为它会遇到性能问题,它在循环数组时占用了总CPU使用量的40%.通常我的程序只占用CPU使用率的5%以下,我认为ReDim Preserve正在导致这种情况,因为我正在循环大约100,000多行.这是我的代码.

    Dim sArray As String()
    Dim fStream As New System.IO.FileStream("messages.txt", IO.FileMode.Open)
    Dim sReader As New System.IO.StreamReader(fStream)
    Dim Index As Integer = 0
    Do While sReader.Peek >= 0
        ReDim Preserve sArray(Index)
        sArray(Index) = sReader.ReadLine
        Index += 1
    Loop

    fStream.Close()
    sReader.Close()
Run Code Online (Sandbox Code Playgroud)

除了ReDim Preserve之外,还有其他方法可以将值放入数组吗?在此先感谢,我现在真的陷入了这个问题.

这是我使用List的更新代码.

    Dim sArray As String()
    Dim sList As New List(Of String)
    Dim fStream As New System.IO.FileStream("messages.txt", IO.FileMode.Open)
    Dim sReader As New System.IO.StreamReader(fStream)
    Dim Index As Integer = 0
    Do While sReader.Peek >= 0
        sList.Add(sReader.ReadLine)
    Loop
    sArray = sList.ToArray …
Run Code Online (Sandbox Code Playgroud)

vb.net arrays loops filestream streamreader

0
推荐指数
1
解决办法
1万
查看次数

VB.net禁用TabControl的TabPage

我目前有一个使用的表单TabControl有5 TabPages.我想创建一个可以禁用特定按钮的按钮TabPage.

我试过了

TabPage1.Enabled = False
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我该怎么做呢?

vb.net tabcontrol tabpage winforms

0
推荐指数
1
解决办法
4万
查看次数