PDA

View Full Version : Accessing Controls on Other Forms لطفا کمکم کنید...........



lomir
چهارشنبه 12 فروردین 1383, 15:23 عصر
سلام من یک مشکل کوچکی دارم ..
نمی تونم به کنترل های در فرم دیگری در برنامه استفاده کنم
مثلا در یک ماژول هستم و می خوام به یک textbox در form1 از مقدار آن در ماژول استفاده کنم و من وقتی این کد می نویسم form1.textbox.text پیغام خطای :
Reference to a non-shared member requires an object reference.
رو می ده لطفا کمکم کنید با تشکر /// :shock: :D

sh
چهارشنبه 12 فروردین 1383, 16:21 عصر
دوست عزیز معمولا تویه ماژل یه تابع یا یه روال می نویسن و آن رو در هر فرمی که بخواهن صدا میزنن نه اینکه که تو می خواهی انجام بدی و این یکم غیر معمولی هست

اگر بگی میخوای چه کاری اینجام بدی شاید بشه کمک کرد

linux
چهارشنبه 12 فروردین 1383, 21:06 عصر
dim frm as from1=new from1
dim txt as string
txt=frm.textbox1.tex

این کار را انجام بده

lomir
چهارشنبه 26 فروردین 1383, 22:12 عصر
نه این درسته ولی یک مشکلی به وجود می یاد با این فرض که من می خوام به یک
control مانند text box دسترسی داشته باشم و مقدار textbox1.text = "ali
رو به ان تخصیص می دیم ............
بعد در یک ماژول می خواهم مقدار textbox1 که مثلا در forme 1 می باشد رو استفاده کنم
اگر از روش شما استفاده کنم به هیچ دست پیدا نمی کنم
زیرا : dim frm as form1= new form1 باعث می شه یک form جدید با کنترل های جدید درست بشه
و مقدار پیش فرض رو به همه کنترل frm تخصیص داده می شه و دیگر چیزی به نام ali در textbox1.text
وجود نداره .........................
امیداروم مشکل منو فهمیده باشید :--)

Abbas Arizi
چهارشنبه 26 فروردین 1383, 22:28 عصر
برای جلوگیری از تعریف مجدد فرم اون رو به صورت عضو کلاس تعریف کنید نه عضو یک تابع.

lomir
چهارشنبه 26 فروردین 1383, 23:55 عصر
میشه بیشتر توضیح بدید!!!
البته با یک مثال ساده 8) :idea: ..........

Abbas Arizi
پنج شنبه 27 فروردین 1383, 00:27 صبح
ساده است. شما همین خط dim frm as Form1 رو یه جایی بنویسید که توی هیچ تابعی نباشه. بعد یه بار در لود فرم اون رو با new ست کنید. یه چیزی شبیه این:

Private frm As Form2

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
frm = New Form2()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
frm.Show()
End Sub

lomir
پنج شنبه 27 فروردین 1383, 15:37 عصر
:roll: نه پسره خوب این که باز همون شد دوباره یک new form جدید درست می کنه مقدار پیش
فرض به کنترل ها می ده ......
دوباره مشکله منو بخون اگر می تونی جواب بده merci :lol: :wink: :?:

linux
پنج شنبه 27 فروردین 1383, 17:09 عصر
ببین یه مقداری توی یک فرم داری می خواهی با زدن کلید ok این مقدار به یک تکست باکس توی فرم دیکه انتقال پیدا کنه؟؟
اگر اینطور هست خوب از اول بگوووووو!
اگر اینطور هست بهترین راه یک مثال هست.

lomir
پنج شنبه 27 فروردین 1383, 23:58 عصر
دوست عزیز این فایل rar شما مشکل داره :) باز نمی شه

linux
جمعه 28 فروردین 1383, 01:50 صبح
این فایل زیپش

lomir
دوشنبه 31 فروردین 1383, 12:14 عصر
آره جالب بو د ....
ولی آن چیزی که می خواستم نبود ... بعدا خودم با شما تماس می گیریم و بطور کامل با شما
مشورت می کنم ایمیل من تو یاهو mailcute_ir@yahoo.com.au مرسی بای .........