PDA

View Full Version : سوال: مشکل در تعریف متغییر



zssmoa
چهارشنبه 05 آبان 1389, 08:14 صبح
با سلام
من میخواستم یک کنترل در صفحه اول تعریف کنم به طوری که از تمام صفحات دیگر به آن دسترسی داشته باشم و بتونم خصوصیات اون رو تغییر بدم واثر این تغییرات رو ببینم روی کنترل ببینم چطور می تونم این کار رو بکنم

ایمان مدائنی
چهارشنبه 05 آبان 1389, 08:18 صبح
شما بايد نوع دسترسي اون كنترل رو public كنيد

mmd2009
پنج شنبه 06 آبان 1389, 01:37 صبح
با سلام

شما باید یک پراپریتی از کنترل موجود ایجاد کنید

و مقدار با get/set بازگدانی و بازنشانی کنید

یه چیزی تو این مایه ها :



public textbox MyTXT
{
get{return(this.txtname);}
set{this.txtname=vaue;}
}


حال پراپریتی رو با توجه به فرمتون میتونید مورد دسترسی قرار بدید

موفق باشید

zssmoa
پنج شنبه 06 آبان 1389, 07:41 صبح
سلام

من یکم در C# مبتدی هستم فرموده بودید property برای کنترل تعریف کنم و set,get اون تعریف کنم .برای این کار حتما باید یک کلاس جدید تعریف کنم و این خاصیت را ایجاد کنم یا اینکه این کد رو به همین ترتیب در form load بنویسم.
با تشکر

amir-yeketaz
پنج شنبه 06 آبان 1389, 09:30 صبح
سلام

من یکم در C#‎‎ مبتدی هستم فرموده بودید property برای کنترل تعریف کنم و set,get اون تعریف کنم .برای این کار حتما باید یک کلاس جدید تعریف کنم و این خاصیت را ایجاد کنم یا اینکه این کد رو به همین ترتیب در form load بنویسم.
با تشکر
پروپرتی ها یه چیزی تو مایه های فیلدها هستن ... یعنی منظورم اینه که باید اونارو اونجا که فیلدها رو تعریف میکنید تعریف کنید ... (اخه تو متد Form load که تعریف کنید میشه local variable که !!!) ...

من خودمو یه مبتدیه مبتدی میدونم اونوقت شما میگین یه کم مبتدیم!:لبخند:

موفق باشید...

zssmoa
یک شنبه 09 آبان 1389, 10:03 صبح
با سلام

اولا ازتون ممنونم که وقت میزارید و جواب سوالهای من رو که (1000-) در .net هستم را میدهید.

من یه جورایی متوجه نمیشم! ببینید من در form1 یک کنترل serial port دارم که میخواهم اطلاعات را که میگیرد نشان دهد یک منو هم دارم به نام setting که در صورتی کاربر بخواهد تنظیمات پورتش رو تغییر بدهد مثل boudrate ,comname ... از این صفحه استفاده میکند و این تغییرات باید به Serialport ما که در فرم اول است منتقل شده و با تغییرات جدید کارکند. در ضمن یک کلاس هم تعریف کردم که این تغییرات از طریق اون به پورت ما منتقل میشود .
حالا فرض کنیم کاربر در form setting مقادیر یکی از combobox ها را تغییر داده در متد SelectedIndexChangedچطور به اون کلاس و serialport دسترسی داشته باشم.

با تشکر

tooraj_azizi_1035
یک شنبه 09 آبان 1389, 10:08 صبح
سلام،
با استفاد ه از Form1.Controls["ControlName"].Property.
ControlName نام کنترل روی فرم و Property خاصیت آن کنترل است که متناسب نیازتان آن را انتخاب می کنید. :قلب:

zssmoa
یک شنبه 09 آبان 1389, 10:30 صبح
سلام
وقتی form1. میزنم متد controls نداره دقیقا کجا بزارم

ممنون

tooraj_azizi_1035
یک شنبه 09 آبان 1389, 10:34 صبح
سلام،
Controls یه Property هست. شما باید نام فرم رو تایپ کنی. شاید کلاس فرم رو داری تایپ می کنی. برای امتحان اسم فرمت رو تغییر به به مثلاً MyForm بعد امتحان کن.

zssmoa
یک شنبه 09 آبان 1389, 10:58 صبح
ببخشید شرمنده
من Name رو که تغییر می دم اسم کلاس تغییر می کنه بعد باز هم نمیاره ولی وقتی this.controls مینویسم controls رو داره ولی اسم کنترل ها رو نداره این عبارتی رو که فرمودید باید در سازنده فرم استفاده کنم

zssmoa
یک شنبه 09 آبان 1389, 13:03 عصر
دوستان با سلام من بدجوری تو این مسئله گیر کردم فایل برنامم رو میزارم اگه لطف کنید درستش کنید که کار من هم راه بیفته ممنون میشم توضیحات کاری که می خواهم انجام بدم تو چند تا پست قبلی نوشتم

خیلی ممنون

tooraj_azizi_1035
یک شنبه 09 آبان 1389, 13:49 عصر
سلام،
فرض می کنیم دو فرم داریم. در پنجره Properties خاصیت Name فرم رو میبینیم. فرض می کنیم در فرم FirstForm دکمه ای به نام Button1 وجود دارد و می خواهیم خاصیت Text آن را به Button2 تغییر دهیم. برای این کار مثلا در رویداد کلیک فرم SecondForm یا فرم دوم این کد را می نویسیم:

private SecondForm_Click(....)
{
FirstForm.Controls["Button1"].Text="Button2";
}
تست کن.

tooraj_azizi_1035
یک شنبه 09 آبان 1389, 13:58 عصر
سلام،
myForm.Controls["serialPort1"].PROPERTYNAME=VALUE;
خط بالا رو به پروژه اضافه کردم. PROPERTYNAME اسم خاصیتی است که می خواهی اونو به دلخواه ست کن همینطور مقدار رو.