سلام
چطور میشه textbox و label رو به تعداد دلخواه در زمان اجرا به فرم اضافه کرد به گونه ای که قابل حرکت دادن باشن؟؟؟؟
سلام
چطور میشه textbox و label رو به تعداد دلخواه در زمان اجرا به فرم اضافه کرد به گونه ای که قابل حرکت دادن باشن؟؟؟؟
دوست عزیز شما می تونید در زمان اجرا یک instance از کنترل رو بسازید و سپس به مجموعه Contrls اضافه کنید.
Label MyLabel = new Label();
MyLabel.Text = "Salam";
this.Controls.Add(MyLabel);
آخرین ویرایش به وسیله vcldeveloper : سه شنبه 25 اسفند 1388 در 21:23 عصر دلیل: تبلیغ غیر مجاز در پست
سلام دوست عزیز.
هر جا خواستی یه کنترل اضافه کنی، مثلا TextBox، بنویس:
TextBox t1 = newTextBox();
t1.Location = newPoint(4, 44);
this.Controls.Add(t1);
هر جا خواستی جاشو عوض کنی، خاصیت Location رو تغییر بده.
Lable هم مثل همینه.
من یه فرم داشتم که تعداد فیلداش متغیر بود و کاربر میتونست بسته به نیازش تعداد فیلدها رو کم یا زیاد کنه.بسته به این عملش سایز فرمم کم و زیاد میشد و فیلدها زیر هم اضافه میشدن
اگه میخواین اینجوری باشه من این کارارو کردم:
1- یه UserControl ساختم و داخلش Label و TextBox رو گذاشتم
2- خاصیت AutoSize فرم رو True کردم
3- خاصیت AutoSizeMode فرم رو GrowAndShrink قرار دادم
4-یه FlowLayoutPanel به فرمم و اسه نمایش فیلد ها اضافه کردم
5-خاصیت AutoSize و AutoSizeMode رو مثل فرمم مقدار دادم
6-خاصیت FlowDirection رو TopDown قرار دادم
7- دوتا Button یکی واسه اضافه کردن و یکی هم واسه حذف کردن ایجاد کردم
8- تو رویداد Click دکمه افزودن از UserControl که ساخته بودم شی ساختم و به وسیله متد flowLayoutPanel.Controls.Add به کنترلهای پنل اضافه میکردم
9-تو رویداد Click دکمه حذف، آخرین UserControl اضافه شده به پنل رو بوسیله متد flowLayoutPanel.Controls.RemoveAt(flowLayoutPanel. Controls.Count-1) حذف میکردم
ممنون ولی کد اضافه کردن به این شکل رو میدونم. من می خوام اینجوری باشه که در زمان اجرا بشه textboxو... رو حرکت داد ومکانش رو مشخص کرد...
منظور شما از usercontrol یک کلاس به این اسمه؟؟؟
واسه جابجا کردن از خاصیت Location استفاده میشه. با کد نویسی و در زمان طراحی که آسونه و نکته ای نداره ولی واسه جابجا کردنش با موس راهی که به ذهنم میرسه اینه که با رویداد های MouseDown و MouseMove و MouseUp اینکار رو میتونی بسادگی انجام بدی.
UserControl یکی از کامپوننت های .Net ، که واسه شخصی سازی کنترل ها میتونی ازش استفاده کنی
راه افزودنش به پروژه هم : کلیک راست روی نام پروژه در Solution Explore و انتخاب Add -> UserControl هست
سلام
دررابطه با حرکت دادن کنترل ها در runtime زمانی که سر کلاس های استاد کیانی بودم ایشان کامپوننتی نوشتن که زمانی که به فرم اضافه می شد یک خاصیت از نوع bool به تمامی کنترل های روی فرم اضافه می شد که با true کردن آن، کنترل مورد نظر قابلیت جابجایی در runtime پیدا می کرد و با false کردن آن قابلیت مذکور از ان گرفته می شد.
اگر دوستان نیاز به این کامپوننت دارند می توانم با آقای کیانی صحبت کنم و اگر ایشان اجازه دادند کامپوننت یا نمونه سورس های آن را آپلود می کنم.
دوست عزیز شما با استغاده از خاصیت location کانتینر مربوط به Labet میتونید loacation lable رو با توجه به اون تنظیم کنید یا تغییر بدین