none
在线程内不是同一个Class内设置了按钮级别为Public没反应 RRS feed

  • 问题

  • 不再线程内就能控制

    Public Class Form1
        Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click
            Dim cs As New cs
            'cs.chulai()    不再线程内就能控制
            Dim Thread As New System.Threading.Thread(AddressOf cs.chulai)
            Thread.Start()
        End Sub
    End Class
    Public Class cs
        Public Sub chulai()
            Control.CheckForIllegalCrossThreadCalls = False
            Dim Labelj As New ToolStripStatusLabel
            Labelj.Name = "添加"
            Labelj.Text = "真在添加Labelj"
            Form1.StatusStrip1.Items.AddRange(New ToolStripStatusLabel() {Labelj})
            Labelj.Text = "Labelj"
        End Sub
    
    End Class
    2009年4月6日 2:56

答案

  • Public Class Form1
        Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click
            Dim cs As New cs
            cs.form=me
            
            Dim Thread As New System.Threading.Thread(AddressOf cs.chulai)
            Thread.Start()
        End Sub
    End Class
    Public Class cs
        Public form as Form1
        Public Sub chulai()
            Control.CheckForIllegalCrossThreadCalls = False
            Dim Labelj As New ToolStripStatusLabel
            Labelj.Name = "添加"
            Labelj.Text = "真在添加Labelj"
            form.StatusStrip1.Items.AddRange(New ToolStripStatusLabel() {Labelj})
            Labelj.Text = "Labelj"
        End Sub
    
    End Class
    

    工作突然有点忙 嘿嘿
    • 已标记为答案 KeFang Chen 2009年4月11日 15:56
    2009年4月10日 14:34

全部回复

  • 你好!
         你的类名和对象名重名了,都是cs,修改其中的一个!
    周雪峰
    2009年4月6日 4:15
    版主
  • 就算不重名也改不了

    2009年4月6日 6:16
  • 这一行有问题,Form1是类,StatusStrip1是实例成员吧,不可能这样访问到!你需要获得Form1的实例才可以:
    Form1.StatusStrip1.Items.AddRange(New
     ToolStripStatusLabel() {Labelj})

    周雪峰
    2009年4月6日 9:11
    版主
  • Form1.CheckForIllegalCrossThreadCalls = False

    http://feiyun0112.cnblogs.com/
    2009年4月7日 4:22
    版主
  • 也一样不能添加

    2009年4月8日 0:10
  • Public Class Form1
        Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click
            Dim cs As New cs
            cs.form=me
            
            Dim Thread As New System.Threading.Thread(AddressOf cs.chulai)
            Thread.Start()
        End Sub
    End Class
    Public Class cs
        Public form as Form1
        Public Sub chulai()
            Control.CheckForIllegalCrossThreadCalls = False
            Dim Labelj As New ToolStripStatusLabel
            Labelj.Name = "添加"
            Labelj.Text = "真在添加Labelj"
            form.StatusStrip1.Items.AddRange(New ToolStripStatusLabel() {Labelj})
            Labelj.Text = "Labelj"
        End Sub
    
    End Class
    

    工作突然有点忙 嘿嘿
    • 已标记为答案 KeFang Chen 2009年4月11日 15:56
    2009年4月10日 14:34