PDA

View Full Version : مبتدی: خواندن کنترلهای چند فرم



m_gholami
یک شنبه 11 دی 1390, 12:55 عصر
با سلام

من دو برنامه a و b نوشتم
برنامه a با 3 فرم و هر فرم هم دارای تعدادی کنترل هست.
برنامه b یک فرم دارم و یک باتن.


میخام وقتی در برنامه b دکمه رو کلیک کنم برنامه a چه باز باشه چه بسته باشه به فرمها و کنتلهاش دسترسی داشته باشم
یا به عبارت دیگه
چگون من مییتونم در برنامه b به فرم ها و کنترلهای برنامه a دسترسی پیدا کنم و بتونم اطلاعات دقیق اونا رو مسج کنم.



با تشکر

mehdi.mousavi
یک شنبه 11 دی 1390, 13:06 عصر
سلام.
لطفا به این آدرس (http://barnamenevis.org/showthread.php?81557-%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%AF%D9%88-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A8%D8%A7-%DB%8C%DA%A9%D8%AF%DB%8C%DA%AF%D8%B1&p=406880&viewfull=1#post406880) رجوع کنید.

موفق باشید.

m_gholami
یک شنبه 11 دی 1390, 13:50 عصر
با سلام مجدد

فک کنم منظورمو بد رسوندم

درسته که من میخام بین دو تا برنامه ارتباط برقرارکنم ولی میخام به کنترلهای برنامه دومی هم دسترسی داشته باشم


مثلا name \parent\size \location کنتلها و فرمها رو بهم برگردونه

mehdi.mousavi
یک شنبه 11 دی 1390, 13:59 عصر
با سلام مجدد فک کنم منظورمو بد رسوندم درسته که من میخام بین دو تا برنامه ارتباط برقرارکنم ولی میخام به کنترلهای برنامه دومی هم دسترسی داشته باشم مثلا name \parent\size \location کنتلها و فرمها رو بهم برگردونه

برای اینکار، می تونید ابتدا با FindWindow (http://pinvoke.net/default.aspx/user32.FindWindow) هندل به پنجره ای که قصد دسترسی به اطلاعاتش رو دارید رو پیدا کنید. وقتی اینکارو کردید، سپس می تونید با استفاده از متود GetNextWindow و در یک حلقه، Handle به Child Control های موجود در اون فرم رو بدست بیارید. سپس، می تونید با استفاده از متود GetWindowText (http://pinvoke.net/default.aspx/user32.GetWindowText) محتوای درون TextBox ها رو بگیرید. خلاصه کنم، برای اینکار باید بدونید Windows چطور کار میکنه و چه پیامی رو باید به Handle مورد نظر ارسال کنید...

موفق باشید.

پاورقی: اگر هر دو برنامه متعلق به شماست و شما به Source هر دو دسترسی دارید، روش فوق صحیح نیست و باید به یکی از همون روشهای Interprocess Communication روی بیارید.