PDA

View Full Version : تبدیل نوع String به Button



Unknownlive
پنج شنبه 30 مهر 1388, 15:24 عصر
با سلام من یک سوال داشتم.اونم اینه که چطوری نوع رشته یا ابجکت را به دیگر اشیا تبدیل کنم.
برای مثال من یک نوع ساده ان را می گم :مثلا از ورودی TextBox می خواهیم نام یک Button موجود در فرم را از کاربر گرفته و بر روی ان تغییر ای جاد کنییم کد زیر را داریم
Button btn = new Button();
btn =var;
btn.Text = "نام مورد دلخواه";
در کد بالا var یک متغییر می باشد اما نوع ان را نمی دانم باید چی بگذارم تنها راه Button است اما اگر ازنوع Button تعیریف شود نمی توان محتوای TextBox را در ان ریخت زیرا خطای تبدیل نوع String به Button را می دهد حال اگر قبل از نام متغیر در خط 2 در یک (Button) ضرب کنیم تا تبدیل شود باز هم نمی شود مگر از نوع Object باشد مثل کد زیر:که دیگر پیغام خطا نمی دهد اما کار هم نمی کند :
Object var=textBox1.Text;
Button btn = new Button();
btn = (Button)var;
btn.Text = "نام دلخواه";
این تنها راهی است که پیدا کردم پیغام خطا ندهد اما کار هم نمی کند لطفا کمک کنید

vox_cine
پنج شنبه 30 مهر 1388, 15:51 عصر
همچین کاری ممکن نیست!(تبدیل String به کنترل)
برای این کار توی کنترلهای توی فرمتون(this.Controlls) سرچ بزنید (مثلا با foreach) هر کدوم از کنترل ها اسمش با اسم textbox یکی بود(if textbox.text==item.name) تغییرات رو روش اعمال کنید.(item.name="نام دلخواه")

Yasersadegh
پنج شنبه 30 مهر 1388, 16:25 عصر
سلام
دوست عزيز منظور دوستمون vox_cine كد زير هست!!!



foreach (Control obj in this.Controls)
{
if (textBox1.Text == obj.Name)
{
obj.Text = "نام دلخواه";
}
}

اميدوارم كه خودت هم به اين كد رسيده باشي و مشكلت حل شده باشه!!!:لبخند:
موفق باشي:چشمک:

Unknownlive
پنج شنبه 30 مهر 1388, 16:34 عصر
خوب با تشکر این راه حل را خودم قبلا استفاده می کردم اما دیگه برام فایده نداره چون می خواهم تابعی بنویسم که از ورودی نام شئ را بگیرد و روی ان تغیرات را اعمال کند خوب حالا ورودی تابع باید از کجا بگیرد؟ار کابربر خوب من چه جوری از کاربرنام رابگیرم و بدم که رشته هم نشه؟

Unknownlive
پنج شنبه 30 مهر 1388, 16:36 عصر
من یک روش ترکیبی پیدا کردم که کمی کد نویسی را طولانی می کنه اگه دوستان روشی پیدا نکردند بهتون می گم اما یک روش نوین می خواهم بجز روش بالا که خودم گفتم و عیب اون این بود که باید نام باتن را می دادی و با رشته نمی شد روش دوم هم که شما گفتید و روش سومی هم هست ترکیبی که بعد می گم اما اگه کسی روش 4 ری پیدا کرد دمش گرم

meysam_pro
پنج شنبه 30 مهر 1388, 21:29 عصر
یه سر به اینجا (http://vahidnasiri.blogspot.com/2009/09/blog-post_16.html) بزنید.

منظورتون این بود؟

Unknownlive
جمعه 01 آبان 1388, 10:00 صبح
میثم با تشکر از توجهت اما این لینک خراب است.

Unknownlive
جمعه 01 آبان 1388, 10:00 صبح
ببین در کل من چه طوری می تونم نام یک شئ مثل دکمه را از یک کاربر یک از بانک اطلاعاتی بخونم

Unknownlive
شنبه 02 آبان 1388, 13:40 عصر
الو الو کسی نبود کمکی به من بکنه 115 اشغاله

sinpin
شنبه 02 آبان 1388, 14:20 عصر
با سلام من یک سوال داشتم.اونم اینه که چطوری نوع رشته یا ابجکت را به دیگر اشیا تبدیل کنم.
برای مثال من یک نوع ساده ان را می گم :مثلا از ورودی TextBox می خواهیم نام یک Button موجود در فرم را از کاربر گرفته و بر روی ان تغییر ای جاد کنییم کد زیر را داریم
Button btn = new Button();
btn =var;
btn.Text = "نام مورد دلخواه";
در کد بالا var یک متغییر می باشد اما نوع ان را نمی دانم باید چی بگذارم تنها راه Button است اما اگر ازنوع Button تعیریف شود نمی توان محتوای TextBox را در ان ریخت زیرا خطای تبدیل نوع String به Button را می دهد حال اگر قبل از نام متغیر در خط 2 در یک (Button) ضرب کنیم تا تبدیل شود باز هم نمی شود مگر از نوع Object باشد مثل کد زیر:که دیگر پیغام خطا نمی دهد اما کار هم نمی کند :
Object var=textBox1.Text;
Button btn = new Button();
btn = (Button)var;
btn.Text = "نام دلخواه";
این تنها راهی است که پیدا کردم پیغام خطا ندهد اما کار هم نمی کند لطفا کمک کنید

میتونید از رفلکشن استفاده کنید. یک مثال از تاپیک 1001 نکته در سی شارپ :
کار با اشیاء بوسیله ی نام آنها (با کمک از Reflection) (http://barnamenevis.org/forum/showpost.php?p=473348&postcount=126)