[
attachment=18003]
أخواني الكرام أنا مبرمج مبتدأ فأرجوا منكم مساعدتي ولكم جزيل الشكر
انا جربت طرق التحكم بمكونات فورم من فورم آخر بس يطلع خطأ وماصلحت معي غير طريقة بناء هدف من نفس الفورم بس هذي الطريقة ماتشتغل إلا في حالة عدم إغلاق الفورم الأول وكذلك طريقة تعريف متغير var كانت شغالة معي من أول. إيش المشكة
وهذا الكود
(13-05-18, 08:34 AM)منصور أحمد حكمي كتب : [ -> ]أخواني الكرام أنا مبرمج مبتدأ فأرجوا منكم مساعدتي ولكم جزيل الشكر
انا جربت طرق التحكم بمكونات فورم من فورم آخر بس يطلع خطأ وماصلحت معي غير طريقة بناء هدف من نفس الفورم بس هذي الطريقة ماتشتغل إلا في حالة عدم إغلاق الفورم الأول وكذلك طريقة تعريف متغير var كانت شغالة معي من أول. إيش المشكة
وهذا الكود
استعمل الاكواد التالية فقط (
myFrm) هو النموذج الذي تتعامل معه
كود :
public partial class myFrm : Form
{
private static myFrm frm;//الاعلان عن كائن من نوع ستاتيك
static void frm_FromClosed(object sender, FormClosedEventArgs e)
{
frm = null; //هدم الكائن
}
public static myFrm getMainForm
{
get //إعادة بنائه
{
if (frm == null)
{
frm = new myFrm ();
frm.FormClosed += new FormClosedEventHandler(frm_FromClosed);
}
return frm;
}
}
بعد ذلك
كود :
public myFrm()
{
InitializeComponent();
if (frm == null)
{
frm = this;
}
ملاحظة
يجب جعل الخاصية (Modifiers) للأدوات المراد التعامل معها من نماذج أخرى (Public)
ثم في النموذج الاخر تنشئ نسخة منه وتتعامل معه أو مع الادوات التي غيرت لها الخاصية كما سبق كما تشاء
ألف شكر أخي الحبيب أبو زيد .
هل هذه الطريقة تقوم بعمل نسخة من الكلاس يعني مثلا أشتي أجلب بيانات من datagridview في الفورم الأول إلى datagridview أخرى في الفورم الثانيز
هل تنفع هذي الطريقة؟
كود :
;()myFrm NewMyFrm = new myfrm
NewMyFrm.txtPublic.Text = “0000000”;
myFrm.show();
يمكنك التحكم في القيمة المسندة لمربع النص كما تشاء بقيمة مباشرة كما في الكود أو قيمة مربع نص أخر أو خلية من داتاقريدفيو ...
وإذا كان النموذج مفتوحا فالكود الذي نقلته كاف للغرض
كود :
var f = Application.OpenForms["Form1"] as Form1;
(14-05-18, 11:18 PM)abozeyd كتب : [ -> ]
كود :
;()myFrm NewMyFrm = new myfrm
NewMyFrm.txtPublic.Text = “0000000”;
myFrm.show();
يمكنك التحكم في القيمة المسندة لمربع النص كما تشاء بقيمة مباشرة كما في الكود أو قيمة مربع نص أخر أو خلية من داتاقريدفيو ...
وإذا كان النموذج مفتوحا فالكود الذي نقلته كاف للغرض
كود :
var f = Application.OpenForms["Form1"] as Form1;
والله يا أخي العزيز طريقة تعريف المتغير var f=Application.OpenForms ماعد تصلح معي سواء كان النموذج مفتوح أم مغلق رغم أنها كانت تمام ماشية معي بس ما أدري إيش حصل
حتى أني حذفت الفيجوا ل ستديو وأعدت تثبيته بس مانفع شي.