الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التحكم فى الادوات اثناء ال RUN TIME

بدأه omar ali في 22 أبريل 2010 · 8 رد · 710 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أريد من حضرتكم المساعدة فى هذا الكود فأنا انشأ مجموعة أدوات أثناء ال runtime عن طريق قاعدة البينات

توضيح

عندى مشكلتين :

المشكلة الاولى : انا عندى جدول فى الداتا بيز وبناء على عدد السطور فى الجدول أنشأ لكل سطر كنترول نوعها بانيل فانا اريد عندما اضغط على كنترول معين بالماوس استطيع ان احصل على بيانتها كأسمها والكود سوف يوضح المراد

Public Sub CreateChart()
        cmd.Connection = cn
        cmd.CommandText = "Select * from Test Order By FloorNo"
        If cn.State = ConnectionState.Closed Then cn.Open()
        dr = cmd.ExecuteReader
        While dr.Read = True
            pan = New System.Windows.Forms.Panel
            With pan
                .Name = "panel" + dr(0).ToString
                .Size = New System.Drawing.Size(60, 45)
                .BorderStyle = BorderStyle.FixedSingle
                .BackColor = Color.Gainsboro
                .Visible = True
                If dr(0) = 1 Then
                    .Location = New System.Drawing.Point(1039, 1)
                Else
                    .Location = New System.Drawing.Point(x, y)
                End If
                AddHandler pan.Click, New EventHandler(AddressOf Panel_click)
                x = (.Location.X + 61)
                y = (.Location.Y)
                lblRoomNo = New System.Windows.Forms.Label
                With lblRoomNo
                    .Name = "Lbl" + dr(0).ToString
                    .Size = New System.Drawing.Size(35, 13)
                    .Location = New System.Drawing.Point(13, 3)
                    .Text = dr(1).ToString
                    .AutoSize = False
                    .Font = New System.Drawing.Font("Tahoma", 8.25, FontStyle.Bold, GraphicsUnit.Point, CType(0, Byte))

                End With
                pan.Controls.Add(lblRoomNo)
            End With
            Me.Controls.Add(pan)
        End While
        If cn.State = ConnectionState.Open Then cn.Close()
    End Sub

هذه هيه الميسود التى أنشأ منها الكنترول فى الرن تيم وهنا انشأت الأيفنت الكليك الخاص بكل كنترول

 Private Sub Panel_click(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        Dim xx As Integer = e.Location.X
        Dim yy As Integer = e.Location.Y
        xx += 898
        yy += 1
        pnlDetails.Location = New System.Drawing.Point(xx, yy)
        pnlDetails.Visible = True
        s = Now.Second
        Timer1.Enabled = True
        Timer1.Start()
    End Sub

أريد عند المستخدم ما يضغط على اى كنترول استطيع ان اعرف اسمها او اى بيانات عنها

ثانيا : عند أنشاء الكنترول لا ينشأ لى الا كنترول واحده فقط الجدول به سطرين ولكنه ينشأ بيانات سطر واحد

أرجو المساعدة ضرورى وجزاكم الله خيرا

#2

بسم الله الرحمن الرحيم

أخى العزيز اتوقع انه بيدى واحد فقط علشان انت اصلا عطيه location واحد بس

Dim xx As Integer = e.Location.X Dim yy As Integer = e.Location.Y xx += 898 yy += 1 pnlDetails.Location = New System.Drawing.Point(xx, yy)

و ده طبيعى

و كمان ياريت لو تعمل remove handler

قبل add handler

#3

اللكويشن دى بتاعت بانيل تانى مساعدة يعنى بتظهر فيها بيانات تفصيلية ليس لها علاقة

#4

ولماذا اعمل remove handler

#5

الحمد لله حليت المشكلة الثانية

وأظهرت بقية الأدوات كان هناك خطأ فى اللوكيشن

x = (.Location.X + 61)
                y = (.Location.Y)

المشكلة يجب ان اجعلها + اغيرها ل -

هكذا يبقى مشكلة واحده

الا وهى تحديد اسم الكنترول فى الايفينت الخاص بالكليك عند الضغط عليه

=

#6

أين الحلول يا أخوانى

أرجو المشاركة والمساعده

حتى طرح فكرة لنفتح أفكار لبعضنا البعض

#7

يا أخوانى ارجو المساعدة

قمت بأنشاء أكثر كنترول فى الرن تيم

نوعها panel وانشأت لها حدث فى الكليك

ورايد اعرف اى اداة التى ضغط عليها اليوزر بالماوس او اى اداة حدث عليها عملية الكليك

انا قمت بعمل جملة for each

قربت سنه بسيطة اريد كيف اعرف اى بانيل التى استخدمت حدث الكليك

ارجو المساعدة ضرورى جزاكم الله خيرا

#8

عند نقر المستخدم على Panel معين سيقوم باستدعاء Panel_Click التي قمت بإسناد handler لها، لذلك Sender هوة نفسه Panel الذي تم النقر عليه

    Sub panel_click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim clickedPanel As System.Windows.Forms.Panel = CType(sender, System.Windows.Forms.Panel)

        'TO DO: Use your ClickedPanel as you want
    End Sub
#9

جزاكم الله خيرا يا أخى مش عارف اشكرك ازاى بجد

بارك الله فيك وفى أخواننا أهل المغرب العربى الشقيق

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…