PDA

View Full Version : نحوه استفاده از Object های یک فرم در فرم دیگر؟



mhd78
چهارشنبه 14 اردیبهشت 1384, 13:51 عصر
چگونه می توان از Object های یک فرم در درون یک فرم دیگر استفاده کرد؟
در ویژوال بیسیک 6 این کار براحتی انجام می شد :
frmPersonel.txtPersonelName.text

با استفاده از Shared می توان این کار را انجام داد ولی کار راحتی نیست.


با تشکر

[/quote]

RezaJP
چهارشنبه 14 اردیبهشت 1384, 19:11 عصر
تا وقتی که شما یک فرم را New نکردید خیر.
اما با Shared میتونید. زیاد هم سخت نیست

titbasoft
پنج شنبه 15 اردیبهشت 1384, 19:46 عصر
در مورد scope یا access level های دات نت قبلا بحث شده: http://www.barnamenevis.org/forum/viewtopic.php?t=22859

mhd78
شنبه 17 اردیبهشت 1384, 11:56 صبح
گاهی اوقات که از Public Shared استفاده می کردم دیگر کنترلهای فرم مربوطه دیده نمی شدند
در ضمن مجبور بودم هر زیر روالی را که می خواستم از آن فرم استفاده نمایم را Shared کنم

majid_afra222
شنبه 17 اردیبهشت 1384, 15:42 عصر
سلام
منم یه راه حل دیگه بهت میگم
تو موقع New کردن فرم بعدی فرم فعلی رو بعنوان فرم والد برای اون تعریف کن
اینجوری اجازه دسترسی به فیلدهای اون رو از طربق فرم جدید داری
برای این کار هم کافیه تابع New فرم دوم رو که میخوای تو فرم اول اونرو ایجاد کنی Overload کنی و یه متغیر جدید برای نگهداری فرم والد هم تعریف کنی :

تعریف متغیر جدید


Private CallingForm As Object
تابع New اصلی فرم


Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub
تابع New جدید


Public Sub New(ByVal frmCaller As Object, ByVal SqlConn As String)
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call
CallingForm = frmCaller
End Sub
فراخوانی اجزای فرم والد


If Not IsNothing(CallingForm) Then
CallingForm.Do...
End If

ایجاد فرم فرزند و ارسال فرم والد برای آن

Dim frmMain As New FormMain(Me)

mhd78
دوشنبه 19 اردیبهشت 1384, 08:38 صبح
جناب آقا مجید گل با تشکر ارز جوابتون
روشی که شما پیشنهاد دادید را اجرا کردم اما چیزی که متوجه شدم این بود که با استفاده از این روش فقط می توان به ویژگیهای خود فرم دسترسی پیدا کرد در حالیکه هدف من دسترسی به متغیرها و کنترلهای قرار داده شده بر روی فرم می باشد بعنوان مثال خواندن مقدار Cell یک DataGrid

در ضمن اگر ممکن است یک مثال عملی با استفاده از Shared بزنید



با تشکر