سلام
متاسفانه گمانم شما از روش های ضد OOP موجود در VB6 در VB9 استفاده کرده اید...
وجود این قابلیت های برای افرادی که از VB9 آمده اند خوب است ولی برای VB9 مایه ننگ و مسخره است.
شما باید اشاره گر هر شی را برای دستکاری داشتهخ باشید و اینکه از نام کلاسس آن استفاده کنید اصلا و ابداً صحیح نیست.
اشاره گر شی در VB در واقع همان متغییری است که کلاسس با آن New شده، شما اگر این متغییر را به هرجا انتقال دهید میتوانید باشی اش هر کاری انجام دهید.
در form2 شما باید یک متغییر عمومی به form1 داشته باشید.
یعنی در form2 کد زیر را اضافه کنید
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا فقط باید متغییر SubFormHandler را پر کنید، این متغییر را باید جایی مقدار دهی کنید Form1 را New کرده اید و در واقع هم اشاره گر Form1 و هم Form2 را دارید....
form2handler.SubFormHandler = form1handler
مثلاً اگر form1 را از داخل form2 میسازید، کدی شبیه این خواهد شد.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و یا اگر form1 و form2 را هر دو در یک جای مشخص میسازید (هرجایی، مثلاً در همان parent) کدی شبیه این نیاز دارید.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
درنهایت کلاً انجام همچین کاری صحیح نیست و در نهایت فقط باید فرمهای child شما به فرم والد متصل باشند و خودشان مستقلاً نباید با هم کاری داشته باشند، کاری که انجام میدهید اصلاً مطابق با اصول برنامه نویسی پروژهای متوسط و بزرگ نیست و در برنامه های کوچک هم انجامش منطقی نیست.
کد نویسی بی قائده و قانون موجب میشود بعد از مدت کدی اسپاگتی مانند داشته باشید و هر چیزی از این سر کد آن سر کد را متاثر کند و در نهایت برنامه نویس اصلی را هم گیج و سردرگم کند، توصعه و اشکال یابی این برنامه هم میتوانید بسیار طاقت فرسا باشد.