تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] كيف اوقف التايمر بعد تحديد الكل في listbox ?
#7
(29-07-17, 02:17 AM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
في ما يبدو انك تستخدم  VS 2010 , نسخة اطار العمل  4.0 , و انا اعمل مع النسخة  4.5
و للاسف النسخة  4.0 لا تدعم العمليات غير المتزامنة عبر Async Wait 
لذلك اخي الكريم حاول ان تعتمد على Thread  لتلبي طلبك.

عدل كود النموذج لديك كالتالي

PHP كود :
Imports System.Threading
Public Class Form1
    Dim Th 
As Thread Nothing

    Private Sub Form1_Load
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        For i 
1 To 100
            ListBox1
.Items.Add("emad" i)
 
       Next
    End Sub

    Structure Mystruct
        Shared room 
As String "Room"
 
       Shared mspv1 111
        Shared mspv2 
222
        Shared mspv3 
333
        Shared mspv4 
444
        Shared mspv5 
555
        Shared colors 
"Red"
 
   End Structure

    Private Sub BtnSend_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles BtnSend.Click

        TextBox1
.Clear()
 
       BtnSend.Enabled False

        If ListBox1
.Items.Count 0 Then
            ProgressBar1
.Maximum ListBox1.Items.Count 1
            Th 
= New Thread(Sub()
 
                               For x As Integer 0 To ListBox1.Items.Count 1
                                    Thread
.Sleep(100)
 
                                   send(0x)
 
                               Next
                            End Sub
)
 
           Th.IsBackground True
            Th
.Start()

 
       Else
            TextBox1
.Text "<presence to='" Mystruct.room "@conference.nimbuzz.com/imanking' type='unavailable'></presence>"
 
           ProgressBar1.Value 0
            BtnSend
.Enabled True
        End 
If

 
   End Sub


    Private Sub send
(As IntegerAs Integer)
 
       Dim Sb As New List(Of String)
 
       Sb.Clear()
 
       Me.BeginInvoke(Sub()
 
                          If Not Th.IsAlive Then
                               BtnSend
.Enabled True
                           End 
If

 
                          Dim Str As String() = {"<message xmlns='jabber:client' to='"Mystruct.room _
                                                                      
"@conference.nimbuzz.com/"ListBox1.Items(i).ToStringvbNewLine,
 
                                                                     "'type='chat' id='292'>"vbNewLine,
 
                                                                     "<body>"vbNewLineMystruct.mspv1 vbNewLine &
 
                                                                     Mystruct.mspv2 vbNewLine Mystruct.mspv3 vbNewLine &
 
                                                                     Mystruct.mspv4 vbNewLine Mystruct.mspv5vbNewLine &
 
                                                                     "</body>"vbNewLine"<html xmlns='http://jabber.org/protocol/xhtml-im'>"vbNewLine,
 
                                                                     "<body xmlns='http://www.w3.org/1999/xhtml'>"vbNewLine,
 
                                                                     "<p>"vbNewLine"<em>"vbNewLine"false"vbNewLine,
 
                                                                     "</em>"vbNewLine"<strong>"vbNewLine"true"vbNewLine,
 
                                                                     "</strong>"vbNewLine"<span style='" Mystruct.colors "'/>"vbNewLine,
 
                                                                     "</p>"vbNewLine"</body>"vbNewLine"</html>"vbNewLine,
 
                                                                     "</message>"vbNewLine"***********************************"}

 
                          Sb.Add(String.Concat(Str))

 
                          For Each Instr As String In Sb
                               TextBox1
.AppendText(Instr Environment.NewLine)
 
                          Next
                           ProgressBar1
.Value x

                           ListBox1
.Items.RemoveAt(0)

 
                          'هذا الكود لاظهار التقدم بالنسبة المئوية
                           Dim percent As Integer = CInt((CDbl(ProgressBar1.Value - ProgressBar1.Minimum) / CDbl(ProgressBar1.Maximum - ProgressBar1.Minimum)) * 100)
                           Using gr As Graphics = ProgressBar1.CreateGraphics()
                               gr.DrawString(percent.ToString() + "%", SystemFonts.DefaultFont, Brushes.Black, New PointF(ProgressBar1.Width / 2 - (gr.MeasureString(percent.ToString() + "%", SystemFonts.DefaultFont).Width / 2.0F), ProgressBar1.Height / 2 - (gr.MeasureString(percent.ToString() + "%", SystemFonts.DefaultFont).Height / 2.0F)))
                           End Using

                       End Sub)

    End Sub

End Class 


اعمل خاصية MultiLine =True لمربع النص و قم بتوسيعه حتى تظهر الرسالة بشكل كامل

بالتوفيق

اخي بارك الله فيك ولكن اريد تطبيق التالي

Public Class Form1
    Dim emad As XmppClientConnection
بحيث ارسال الكود مرتبط من خلال الاتصال التالي
PHP كود :
Dim Str As String() = {"<message xmlns='jabber:client' to='"Mystruct.room _
                                                                      
"@conference.nimbuzz.com/"ListBox1.Items(i).ToStringvbNewLine,
 
                                                                     "'type='chat' id='292'>"vbNewLine,
 
                                                                     "<body>"vbNewLineMystruct.mspv1 vbNewLine &
 
                                                                     Mystruct.mspv2 vbNewLine Mystruct.mspv3 vbNewLine &
 
                                                                     Mystruct.mspv4 vbNewLine Mystruct.mspv5vbNewLine &
 
                                                                     "</body>"vbNewLine"<html xmlns='http://jabber.org/protocol/xhtml-im'>"vbNewLine,
 
                                                                     "<body xmlns='http://www.w3.org/1999/xhtml'>"vbNewLine,
 
                                                                     "<p>"vbNewLine"<em>"vbNewLine"false"vbNewLine,
 
                                                                     "</em>"vbNewLine"<strong>"vbNewLine"true"vbNewLine,
 
                                                                     "</strong>"vbNewLine"<span style='" Mystruct.colors "'/>"vbNewLine,
 
                                                                     "</p>"vbNewLine"</body>"vbNewLine"</html>"vbNewLine,
 
                                                                     "</message>"vbNewLine"***********************************"}

 
                          Sb.Add(String.Concat(Str)) 
اريد استبدال 
.........الخDim Str As String() = {"<message
ب
.........الخemad.send(String.Concat(New String() {"<message
ليصبح البرنامج فعال وشكراً
الرد }}}
تم الشكر بواسطة: ابو ليلى


الردود في هذا الموضوع
RE: كيف اوقف التايمر بعد تحديد الكل في listbox ? - بواسطة e-coder - 29-07-17, 04:12 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يتم عرض جدول من قائمة listbox في داتاقريدفيو ahmedfa71 5 881 04-09-25, 02:59 PM
آخر رد: ahmedfa71
  [VB.NET] كيف أجعل الأداة Listbox تعرض عمودين بدل عمود واحد mmaalmesry 6 486 15-10-24, 11:05 AM
آخر رد: Taha Okla
  أريد تحديد صلاحيات المستخدمين عن طريق حقل في جدول قاعدة البيانات F.H.M 0 329 12-09-24, 06:29 PM
آخر رد: F.H.M
  معرفة حجم ملف PDF تم تحديد مساره modymody300894 1 300 10-08-24, 03:35 PM
آخر رد: ميدو الفنان
  مشكلة في التايمر assuhimi 3 405 23-03-24, 04:51 PM
آخر رد: Taha Okla
  [VB.NET] listbox تلوين عدد من هذه الأسماء mervandz 3 751 18-11-23, 01:35 AM
آخر رد: sniper2030
Information [VB.NET] حذف كل العناصر التي تاتي بعد عنصر الذي احدده listbox mervandz 3 649 10-11-23, 07:12 PM
آخر رد: justforit
  تحديد موقع ملف user.config واعدة توجيهه لموقع آخر Mohammed Nafa 3 750 07-11-23, 10:12 PM
آخر رد: Mohammed Nafa
  كيف الحصول على قيمة الخلية بعد تحديد الصف في datagridview؟ hazim1 2 888 06-08-23, 01:12 AM
آخر رد: hazim1
  تحديد مسار البرنامج atefkhalf2004 12 5,830 24-06-23, 10:28 PM
آخر رد: سعود

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم