تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيفية سحب قيمة متغير ادخل Public
#1
Question 
السلام عليكم شباب عندى سؤال و هو عندى اكتر من Public Sub و Private Sub
و دلا مثلا عنهم 
كود :
Public Sub CheckUp(ByVal NameForm As System.Windows.Forms.Form)

    Private Sub hclick(ByVal sender As Object, ByVal e As EventArgs)

دلوقتى لو عايز اخدى قيمة متغير NameForm لى فى اول كود استخدمها فى ايه مكان اخر ازاى اقدر اخدها من Public
يعنى مثلا هاخد NameForm  و سوف يتم وضعها فى Public اخرى كيفة يتم ذلك Huh
قال تعالى : يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ
الرد }}}
تم الشكر بواسطة:
#2
حتى ياتي احد يكون فهم المطلوب هل ممكن توضح ولو بفكرة عشان يكون اوضحSmile
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#3
الان قومت بعمل هذا الكود فى الكلاس الخاص بى 
كود :
 Public Sub CheckUp(ByVal NameForm As System.Windows.Forms.Form)
 End Sub
وجبت اسم الفروم عن طريق المتغير NameForm تمام
طيب لو عملت Public تانية و عايز اجيب اسم الفروم من لى قبلها مثلا زاى كده 

كود :
 Public hello

dim s as string = nameform

End Sub
قصدى هنا ازاى اقدر اجيب قمية المتغير NameForm من فوق Public Sub CheckUp من فى نفس الكلاس الى Public hello بنفس القيمة لى يحملها من قبل
قال تعالى : يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ
الرد }}}
تم الشكر بواسطة:
#4
هل جربت Function؟؟؟

كود :
Public Class Class1
   Public Function fname(ByRef f As Form) As String
       Return f.Name
   End Function
   Public Sub gname(ByRef f As Form)
       MsgBox("hellow: " & fname(f))
   End Sub
End Class
كود :
       Dim c As New Class1
       c.gname(Me)
 لا ادري هل هذا ماتريده ام لا
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة: alims
#5
اولا انت كاتب nameform والمفهوم عن name انه نصي String
فهذا يتناقض بالمفهوم مع اللي انت كاتبه NameForm As System.Windows.Forms.Form

اذا كان فعلا تقصد النوع System.Windows.Forms.Form
فحيكون مثلا TheForm As System.Windows.Forms.Form
هكذا
كود :
Class classname

   Dim TheForm As System.Windows.Forms.Form

   Sub New(ByVal myForm As System.Windows.Forms.Form)
       Me.TheForm = myForm
   End Sub

   Public Sub CheckUp()
       Dim s As String = TheForm.Name
   End Sub

   Private Sub hclick()
       Dim s As String = TheForm.Name
       MsgBox(s)
   End Sub

End Class
الكلاس ما تشوف منه غير CheckUp لانها Public

الحين عندما تريد تنشئ متغير من الكلاس لازم ترسل له في نفس الوقت الفورم المستهدف مثل
كود :
Dim cls As New classname(Me) 'المقصود الفورم اللي تم فيه التعريف

لو انك وضعت كود الكلاس كامل او مشروعك كان ممكن افيدك اكثر بكثير
الرد }}}
تم الشكر بواسطة: alims
#6
بمعنى اخر
عندى اتنين كلاس 
الاول عبارة عن 
كود :
Imports System.Windows.Forms
Public Class Alyspicy
   Public Sub CheckUp(ByVal NameForm As System.Windows.Forms.Form, ByVal strcon As String, ByVal Table As String)
و التانى عبارة عن 
كود :
Public Class AlySpicyAdd
   Private Sub addtodata()
       Dim con As New System.Data.OleDb.OleDbConnection(strcon)
       If con.State = ConnectionState.Open Then con.Close()
       Try
           con.Open()
           Dim da As New System.Data.OleDb.OleDbDataAdapter("select * from " + Table, con)
           Dim ds As New DataSet
           Dim cm As New System.Data.OleDb.OleDbCommandBuilder(da)
           da.Fill(ds, Table).ToString()
           Dim dr As DataRow = ds.Tables(Table).Rows(0)
           For i As Integer = 0 To NameForm .Controls.Count - 1
طبعا المشكلة هنا هتكون فى الكلاس التانى فى المتغير  strcon و Table و NameForm 
ازاى اقدر اسحب البيانات لى موجود فى الكلاس الاول من المتغيرات دى NameForm و strcon و Table
علشان اقدر اتعامل مع قاعدة البيانات بدون ما اكتب بيانات تانية فى الفروم علشان اسحب نفس البيانات مره تانية Huh
قال تعالى : يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ
الرد }}}
تم الشكر بواسطة:
#7
السلام عليكم
على حسب فهمي لطلبك ممكن تستخدم Property

PHP كود :
Private _NameForm As Form
    Public Property NameForm 
As Form
        Get
            Return _NameForm
        End Get
        Set
(value As Form)
 
           _NameForm value
        End Set
    End Property 
Email : mrma11581@gmail.com
الرد }}}
تم الشكر بواسطة:
#8
انا هذا الموضوع حاولت افهمه ولكن ما قدرت
برغم قلة خبرتي في الفيجوال بيسك ولكن اعتقد ان sub هي للتنفيذ بغض النظر عن كونها public او private يعني تقدر تستدعيها للتنفيذ بناء على طلبك واذا كانت تقبل متغيرات فالمطلوب منك هو ان تقدم هذه المتغيرات وليس ان تستعلم عنها
يعني كما void في سي شارب ينفذ ولا يرجع قيمة
فمثلا
public void doSomething(int param1, string param2)
{
// كود للتنفيذ
}
تستدعي بالشكل doSomething(3, "myText");
وعندها استدعائها نزودها بقيمة المتغيرات التي تريدها ولا يمكننا ان نستعلم على هذه المتغيرات لان افتراضيا لا قيمة لها ومنطقيا هذا غير مقبول


لا اعرف هل انا مخطئ في الفهم ام انك يا اخي لم توضح السؤال بشكل سليم
اثناء بحثي وجدت تعريف مهم اتمنى ان يفيدك
"Class is a Class, Sub and Function are methods, private is an access modifier"

الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف نضبط قيمة progressbar في حال العد العكسي justforit 2 168 01-11-25, 09:43 AM
آخر رد: justforit
  كيفية منع ظهور الأخطاء من إعدادات البيسيك mmaalmesry 2 858 29-08-25, 10:30 AM
آخر رد: mmaalmesry
  كيفية جلب أسماء الأعمدة بجدول من جداول sql heem1986 2 754 17-08-25, 09:15 PM
آخر رد: heem1986
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,005 06-08-25, 06:34 PM
آخر رد: Taha Okla
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,265 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  جلب القسم بناء على قيمة مصمم هاوي 2 420 22-04-25, 08:38 PM
آخر رد: princelovelorn
  كيفية احتساب الفرق بين تاريخين بناء على عدد معين مصمم هاوي 2 558 15-01-25, 02:02 PM
آخر رد: مصمم هاوي
  كيفية التعامل مع inputbox في فيجوال ستوديو أسامة حسين 4 3,518 14-01-25, 02:04 AM
آخر رد: أبو خالد الشكري
  ايجاد قيمة المجموع العام العيدروس 7 664 06-12-24, 09:28 PM
آخر رد: العيدروس
  ابغي ارجع قيمة الداتا قراد فيو من جديد عندي مشكله khalidalwdi 3 639 05-12-24, 02:21 AM
آخر رد: aljzazy

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


يقوم بقرائة الموضوع: