السؤال هو اذا كان لدى المبرمج اكثر من فورم هل يجعل الكود في كل فروم ؟هل نستخدم كلاس ونستخدم الوراثة ؟
اما طبقت الوراثة لكن لم يكن هناك اي فائده
في المرفقات مثال من احدى الاعضاء
لكن انا اريد استخدامه في اكثر من فورم بالكلاس
The question is if I have more than a programmed form Does that make the code in each Frum? Are we using CLASS and use genetics?
كلاس ووراثة منه....معقوله محد فاهم
ممنتظرين من زمان ....
للرفع
إذا كنت قد فهمت سؤالك, قم بعد زيادة فورم جديد بفتح الملف الخاص به Form#.Designer.vb ثم حرر السطر التالي :
Inherits System.Windows.Forms.Form
إلى كود الوراثة من الفورم الذي تريد
Inherits vbWDM.Form1
mdf كتب:The question is if I have more than a programmed form Does that make the code in each Frum? Are we using CLASS and use genetics?
Bad Grammar & Vocabulary
و إجابة سؤالك
الفورمة دي عبارة عن object من Class أسمه Form و من أفضل و من أكبر مزاية الObject Oriented ال Inherits
و هو معناه الوراثة
أول خطوة :-
جرب أعمل Form و غير الBackGroundColor و أعمل فيها Variable اى نوع و لنفترض Integer بس يكون بالشكل ده
Public x as integer ثم أعمل Build لل project بتاعك
الخطوة الثانية : -
أعمل Add Inherited Form هيفتحلك Window هتلاقى فيها أسم الفورمة بتاعتك أختار الفورمة ثم إضغط على Ok
بس كده هتلاقى الفورمة اتعملها Create و عمل Inherit للفورمة بتاعتك بنفس الديزاين الفورمة الأولى
لو ضغط F7 للدخول إلى صفحة الكود
و كتبت x هتلاقى الVaribale الأنت عملتها Declaration
أسف لعدم وضع كود بسبب ضيق وقتى
و أنصاحك بدراسة الObject Oriented
لأنه من أساسيات البرمجة تحت إطار ال .Net Framework
و بالتوفيق إن شاء الله
محمد رضى كتب:إذا كنت قد فهمت سؤالك, قم بعد زيادة فورم جديد بفتح الملف الخاص به Form#.Designer.vb ثم حرر السطر التالي :
Inherits System.Windows.Forms.Formإلى كود الوراثة من الفورم الذي تريد
Inherits vbWDM.Form1
انت فهمت ...لكن انا اريده في كلاس منفصل.....يعني الكود الخاص للتأثيرات الزجاجي يكون بالكلاس و داخل الفروم 1 وفروم 2 نعمل وراثة للكلاس ...انا عملتها لكن طلع اخطأ
و أنا عملتها على المشروع المرفق و طلعت صح.
بعد زيادة الفورم الثاني Form2 قم بعمل التصحيح المذكور داخل الملف Form2.Designer.vb
خصص فورم خاص به الكود المراد وراثته ثم قم بزيادة سطر الوراثة على النماذج الأخرى,,,
محمد رضى كتب:و أنا عملتها على المشروع المرفق و طلعت صح.
بعد زيادة الفورم الثاني Form2 قم بعمل التصحيح المذكور داخل الملف Form2.Designer.vb
خصص فورم خاص به الكود المراد وراثته ثم قم بزيادة سطر الوراثة على النماذج الأخرى,,,
تجد في المرفقات التجربه الذي شرحتها test2 لم تعمل لدي استطلع عليها إذا كان لدي خطأ
والذي كنت اقصده من كلامي التجربه المرفقه class1
تم تعديل هذه المشاركة بواسطة mdf في 24 يونيو 2010 في 14:42
مثلا انت معك في الكلاس التالي دالة تريد استدعائها اكثر من مرة اوكي فبتسوي في الكلاس الدالة بالشكل التالي مثلاً
Imports Microsoft.VisualBasic
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Convert
Imports System.DBNull
Public Class DataAccess
Dim ConStr As New String("Data Source=user\SQL2008;Initial Catalog=databasename;Integrated Security=True")
Dim SqlConn As New SqlConnection(ConStr)
Public Sub DataAccess()
SqlConn.Open()
End Sub
Public Sub closeconn()
SqlConn.Close()
End Sub
Public Function GetUser() As DataTable
Dim DBadpt As SqlDataAdapter
Dim DBdt As DataTable
DBadpt = New SqlDataAdapter("Select * from tablename,SqlConn)
DBdt = New DataTable()
DBadpt.Fill(DBdt)
Return DBdt
End Functionاوكـــــــــــــــــــــــــــــــــــي هذا في الكلاس بعدها تروح على ال form بتاعتك وبتسوي
Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.UI
Imports System.DBNull
Public Class VUser
بتعرف متغير من نوع الكلاس
Public Da As New DataAccess
Private Sub VUser_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
هنا انت بتستدعي الدالة من الكلاس بمعلومية ال object اللي هو Da اوكي
DataGridView1.DataSource = Da.GetUser()
End Subوان شاء الله بكون افدتك واعذرني طولت المثال لكن علشان يكون واضح رغم انك مش بحاجته كله اوكي سلام
محمد رضى كتب:class1 يجب أن ترث من System.Windows.Forms.Form حتى تستطيع أن تورث وظائفها لفورم آخر.
أنظر المثال المعدل المرفق و بانتظار أسئلتك و ملاحظاتك...
جزاك الله خير اخي محمد فعلاً مبرمجة ......لكن لدي بعض الاسئله انت إنشأة فورم وسميته class1 ولم تنشي كلاس فعلي؟
السؤال الثاني لماذا استخدمت Inherits System.Windows.Forms.Form داخل class1 اليس هو الموروث؟
السؤال الثالث ماوضيفة الكود الذي وضعت داخل class2 و هو
Private Sub InitializeComponent()
Me.SuspendLayout()
'
'Class1
'
Me.ClientSize = New System.Drawing.Size(284, 264)
Me.Name = "Class1"
Me.ResumeLayout(False)
End Sub
وممكن شرح له ؟
السؤال الرابع شكراً لك وجزاك الله خير
اقتباسلكن لدي بعض الاسئله انت إنشأة فورم وسميته class1 ولم تنشي كلاس فعلي؟
كل مربع أو كائن دوت نت هو في الأصل مكتوب كفئة (كلاس) في الأصل. الفئة class1 هي فئة لـ Form بالوراثة
اقتباسالسؤال الثاني لماذا استخدمت Inherits System.Windows.Forms.Form داخل class1 اليس هو الموروث؟
أنت تريد إنشاء فئة تسهل عليك تطبيق تأثير الزجاج على كل النماذج, لذا سيكون المفروض عليك أن تنشئ فئة تسير تأثير الزجاج و بها كل الدالات و المتغيرات المساعدة للقيام بهذا الغرض. و كي تستطيع توريث هذه الوضائف للنماذج على مشروعك, تحتاج الفئة class1 لترث من الفئة الأصلية System.Windows.Forms.Form
اقتباسالسؤال الثالث ماوضيفة الكود الذي وضعت داخل class2 و هوPrivate Sub InitializeComponent()
Me.SuspendLayout()
'
'Class1
'
Me.ClientSize = New System.Drawing.Size(284, 264)
Me.Name = "Class1"
Me.ResumeLayout(False)
End Sub
وممكن شرح له ؟
بصراحة لا أتذكر أنني كتبت فئة اسمها class2 في المشروع المرفق. على كل, مسير تصميم واجهة المستخدم ينشئ الدالة InitializeComponent() في الملف Form#.Designer.vb التي بداخلها تتم كتابة الكود المنشأ أوتوماتيكيا و المسؤول عن إنشاء واجهة المستخدم أي مربعات التحكم و النموذج.
يبدو أن فيجوال ستوديو هو من قام بزيادة الكود الذي ذكرت. أنا قمت بتعديل المثال على #Develop
محمد رضى كتب:كل مربع أو كائن دوت نت هو في الأصل مكتوب كفئة (كلاس) في الأصل. الفئة class1 هي فئة لـ Form بالوراثة
أنت تريد إنشاء فئة تسهل عليك تطبيق تأثير الزجاج على كل النماذج, لذا سيكون المفروض عليك أن تنشئ فئة تسير تأثير الزجاج و بها كل الدالات و المتغيرات المساعدة للقيام بهذا الغرض. و كي تستطيع توريث هذه الوضائف للنماذج على مشروعك, تحتاج الفئة class1 لترث من الفئة الأصلية System.Windows.Forms.Form
بصراحة لا أتذكر أنني كتبت فئة اسمها class2 في المشروع المرفق. على كل, مسير تصميم واجهة المستخدم ينشئ الدالة InitializeComponent() في الملف Form#.Designer.vb التي بداخلها تتم كتابة الكود المنشأ أوتوماتيكيا و المسؤول عن إنشاء واجهة المستخدم أي مربعات التحكم و النموذج.
يبدو أن فيجوال ستوديو هو من قام بزيادة الكود الذي ذكرت. أنا قمت بتعديل المثال على #Develop
عفواً اخي اقصد class1
مكتوب في اخر الكود
Private Sub InitializeComponent()
Me.SuspendLayout()
'
'Class1
'
Me.ClientSize = New System.Drawing.Size(284, 264)
Me.Name = "Class1"
Me.ResumeLayout(False)
End Sub
هذا الكود هل هو للحجم الفورم
إذا أعدت تحميل الملف المضغوط المرفق لن تجد أثرا للكود ما يؤكد أن فيجوال ستوديو قام بزيادته أوتوماتيكيا و هو كود لتهيئة و تحديد اسم و حجم الفورم.
محمد رضى كتب:إذا أعدت تحميل الملف المضغوط المرفق لن تجد أثرا للكود ما يؤكد أن فيجوال ستوديو قام بزيادته أوتوماتيكيا و هو كود لتهيئة و تحديد اسم و حجم الفورم.
نعم الكود اضيف بشكل اوتوماتيكيا ....و الدليل حذفت الكود ورجع البرنامج الكود......على العموم مشكور وجزاك الله خير وكثر الله امثالك وجعل الجنة مثوانا ومثواكم....,
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…