PDA

View Full Version : تکس باکس دایره ای



alirezajf68
سه شنبه 06 بهمن 1388, 21:19 عصر
:متفکر:سلام تکس باکس گرد می خوام برای رسم درخت تا بتونم از طریق این تکس باکسها دیتا ی هر گره رو بگیرم چون تکس باکسهای ویژیوال استدیو چهارگوش هستن مزاحم شدم ممنون می شم اگه پاسخ بدین

CYCLOPS
چهارشنبه 07 بهمن 1388, 07:06 صبح
باید یه کنترل اختصاصی بسازی
مثلا یه عکس دایره بساز و بذار بک گراند کنترلت و یه تکست باکس بذار توش
کار سختی نیست یه کم باهاش کنجار بری درست میشه

kazemproger
پنج شنبه 08 بهمن 1388, 00:47 صبح
برای ساخت textBox یا هر کنترل دیگه بصورت دایره باید یک کنترل سفارشی بسازی.
یک پروژه جدید از نوع windows form control library ایجاد کن.
فرم رو به اندازه دلخواه تنظیم کن مثلا 40*40. روی فرم دبل کلیک کن و کد زیر رو توش بنویس:




GraphicsPath PT = new GraphicsPath(); //1
PT.AddEllipse(0, 0, 40, 40);//2
Region obj = new Region(PT);//3
this.Region = obj;//4


البته باید تو قسمت using فضای نام system.drawing.drawing2d رو اضافه کنی.
یک textBox به فرم اضافه کن. و توی پنجره properties تنظیمات زیر رو اعمال کن:



BorderStyle=None
Dock=Fill
Font.Size=15
MultiLine=true


پروژه رو Run کن. کنترل جدید ساخته شد.
حالا برو تو پروژه اصلیت و کنترلی که ساختی به toolBox اضافه کن. (قسمت general راست کلیک می کنی، گزینه choose items و بهش مسیر میدی و...)
کنترل جدید رو بکش روی فرم. اسمش رو بذار CircleText یا هر چی...
تو قسمت public پروژه یه متغیر از نوع textBox تعریف کن:




TextBox T1; //1


و توی Form_Load این خط رو بنویس:



T1 = (TextBox)CircleText.Controls["textBox1"]; //2


حالا هر بلایی که دلت خواست سر T1 می تونی بیاری:



T1.BackColor = Color.Blue;
T1.ForeColor = Color.White;
T1.TextAlign = HorizontalAlignment.Center;
T1.Text = "ali";


موفق باشی

complexcoding
چهارشنبه 08 دی 1389, 12:59 عصر
سلام :
من این تکس باکس رو درست کردم و تو پروژه اصلی به کار بردم ولی هنگام run یا کلا استفاده error فضای نام بسازید و یا dective استفاده کنید؟یا نمی دونم اسمبلی تغییر بدید؟
بعدش زیر
T1 = (TextBox)CircleText.Controls["textBox1"]; //2
controls خط می کشه من هر فضای نامی که به ذهنم خطور می کرد گذاشتم دیگه نمی دونم باید چی کار کنم یکی کمکم کنه ؟

mahdi87_gh
چهارشنبه 08 دی 1389, 13:38 عصر
شما نیاز نداری هیچ فضای نامی رو اضافه کنی
اون یوزر کنترلی که روی فرم میزاری داخلش کنترل های دیگه ای (همون تکست باکس) قرار دارند. اما در خاصیت Controls آیتمها از نوع Control هستند. بنابراین شما اول اون رو به یه TextBox باید تبدیل کنی و بعد ازش استفاده کنی.
مثل کد زیر

MessageBox.Show((userControl11.Controls[0] as TextBox).Text);

amir-yeketaz
چهارشنبه 08 دی 1389, 15:22 عصر
شما نیاز نداری هیچ فضای نامی رو اضافه کنی
اون یوزر کنترلی که روی فرم میزاری داخلش کنترل های دیگه ای (همون تکست باکس) قرار دارند. اما در خاصیت Controls آیتمها از نوع Control هستند. بنابراین شما اول اون رو به یه TextBox باید تبدیل کنی و بعد ازش استفاده کنی.
مثل کد زیر

MessageBox.Show((userControl11.Controls[0] as TextBox).Text);

برای درخواست ایشون نیازی به این کار نیست!!!
یه نگاه به کنترل من بکنید حالشو ببرین!!!!

موفق باشید

complexcoding
چهارشنبه 08 دی 1389, 23:01 عصر
شما نیاز نداری هیچ فضای نامی رو اضافه کنی
اون یوزر کنترلی که روی فرم میزاری داخلش کنترل های دیگه ای (همون تکست باکس) قرار دارند. اما در خاصیت Controls آیتمها از نوع Control هستند. بنابراین شما اول اون رو به یه TextBox باید تبدیل کنی و بعد ازش استفاده کنی.
مثل کد زیر

MessageBox.Show((userControl11.Controls[0] as TextBox).Text);


سلام ممنون از اینکه خواستید کمک کنید ولی متاسفانه من در زمینه کلاس و کنترل ضعیف هستم ای کاش از همین کنترل دایره ای که من ساختم Run نشد رو که 3 سوت درست می شه درست می کردید و عینا مشکل من رو می گفتید اینطوری من نتونستم بازم مشکل رو حل کنم ...سپاسگذارم.