PDA

View Full Version : سوال: افزودن باتن یا .. به فرم در حین اجرا



perkas
یک شنبه 24 شهریور 1392, 15:47 عصر
سلام


فرض کنید یه فرم داریم با 2 باتن

حالا میخوام با کلیک بر روی باتن 1 یه کپی با تمام خصوصیتها از باتن 2 برام بسازه
یا یه تب کنترل رو در حین اجرا بتونم یه تب بهش اضافه کنم با تمام خصوصیات تب اول

m_ali_gho
یک شنبه 24 شهریور 1392, 16:07 عصر
سلام دوست عزیز.
ببینید وقتی شما یه کنترل رو فرمتون قرار میدین، در واقع دارین یه سری کد توی designer.cs مینویسین. vs کار کد نویسی رو از رو دوش شما برداشته و خودش این کار رو انجام میده. حالا شما که میخواین خودتون انجام بدین فایل designer فرم رو باز کنید و ببینید برای تشکیل مثلا یه button چه کد هایی نوشته شده. همون ها رو البته با تغییر نام بیارید تو فرم و مثلا تو رویداد click یه دکمه ای قرار بدین.
اگه کد ها رو دیدین و باز هم متوجه نشدین، بفرمائین یه نمونه بزارم براتون.

perkas
یک شنبه 24 شهریور 1392, 17:45 عصر
سلام دوست عزیز.
ببینید وقتی شما یه کنترل رو فرمتون قرار میدین، در واقع دارین یه سری کد توی designer.cs مینویسین. vs کار کد نویسی رو از رو دوش شما برداشته و خودش این کار رو انجام میده. حالا شما که میخواین خودتون انجام بدین فایل designer فرم رو باز کنید و ببینید برای تشکیل مثلا یه button چه کد هایی نوشته شده. همون ها رو البته با تغییر نام بیارید تو فرم و مثلا تو رویداد click یه دکمه ای قرار بدین.
اگه کد ها رو دیدین و باز هم متوجه نشدین، بفرمائین یه نمونه بزارم براتون.


فکر کنم یه روش دیگه ای باشه !!!
قبلا یه مقاله خونده بودم ( فکر کنم در مورد index گیری از کل برنامه یا قسمتی از اون بود )

برنامه های مرورگر رو دیدین چطور یه تب به تبها میشه اضافه کرد ؟
یا مثلا وقتی میخوایم یه فایل اتچ کنیم ( مثلا جیمیل یا یاهو ) میتونیم با زدن دکمه افزودن به سطرهای انتخاب فایل اتچ اضافه کنیم ؟

m_ali_gho
یک شنبه 24 شهریور 1392, 18:07 عصر
شما می‌خواین با کد نویسی یه کنترل به فرمتون اضافه کنید. درسته؟ خوب اینم راهی که میشه این کار رو انجام داد. البته اولین و آخرین و تنها راه ممکن نیست. شاید راه دیکه هم باشه. ولی خب من بلد نیستم و در ضمن این همون روشی هستش که خود VS به برنامه کنترل اضافه میکنه!!! تا جایی که من میدونم web browser ها دارن یه tab page به برنامشون اضافه میکنن!!! حالا اونها برنامه نویس های فوق حرفه ای در اختیار دارن و خودشون یه tab control بر طبق نیاز هاشون طراحی میکنن تا به این شکلی در بیاد که من و شما میبینیم. در مورد Gmail هم باید بگم وقتی شما دکمه افزودن رو میزنین یه button و یه textbox به صفحه اضافه میشه دیگه. درسته؟
شاید بشه گفت در هر صورت دارن به کمک کد نویسی به برنامه کنترل اضافه میکنن.
یا یه مثال دیگه. شما میتونین از تو Tool Box تو قسمت Dialogs یه کنترل OpenFileDialog به فرمتون اضافه کنید و بعد در موقع نیاز بنویسین
OpenFileDialog1.ShowDialog();
تا اونو نمایش بدین. همین کار رو هم میتونید کاملا با کد نویسی انجام بدین درسته؟ مینویسین
OpenFileDialog Op = new OpenFileDialog();
Op.ShowDialog();
وقتی کنترل رو از Tool Box اضافه میکنید میبینید که فایل Designer.cs میاد کار تعریف این کنترل رو خودش براتون انجام میده.

ashkan1234
یک شنبه 24 شهریور 1392, 18:32 عصر
سلام!:لبخند:
منظورت دکمه دینامیکه دیگه احتمالا؟!
بفرمایید:
Button btn = new Button();
btn.Text = "Ashkan";

aliagamon
یک شنبه 24 شهریور 1392, 18:51 عصر
دقیقا نفهمیدم .. یعنی میخواین یه دکمه جدید درست کنید دیگه درسته؟

Button btn = new Button();
btn.Location = new Point(40, 60);//ino mitoni ba .Top va .Left ham dar biari...
btn.Name = "button3";
btn.Text = button1.Text;
btn.Font = button1.Font;
this.Controls.Add(btn);

تو مثال بالا دو خصوصیت از باتن یک گرفته میشه ...(همینو میخواین؟)....
این هم برای اضافه کردن تب پیج(با یه مرورگر توش):

TabPage tbp = new TabPage();
tbp.Text = "newTab";
WebBrowser wb = new WebBrowser();
wb.Dock = DockStyle.Fill;
wb.ScrollBarsEnabled = true;
wb.Navigate("google.com");
tabControl1.TabPages.Insert(tabControl1.TabCount, tbp);
tbp.Controls.Add(wb);
tabControl1.SelectTab(tbp);

perkas
یک شنبه 24 شهریور 1392, 23:18 عصر
تشکر
مطالب خوبی بودن ولی من منظورم چیز دیگه بود
کلا اضافه کردن هر چیزی (نه تنها باتن و تب )

یه مبحث داریم به نام index سازی ولی اطلاعاتم کمه ( در حد اطلاعات عمومی )
به این روش شما میتونید یه سری عناصر رو ( حال کل فرم باشه یا یه گروه از اشیاء درون فرم ) که index به منو با باتن میشن رو با کلیک روی دکمه مجدد صدا زد و در قالب فرمی دیگر یا گروپ پنل دیگه یا تب دیگه ای باز کرد
مثال یاهو و جیمیل رو برای جا افتادن قضیه زدم نه اینکه عینا اون رو میخوام


چند سال پیش یه برنامه مینوشتم که مبتدی بود و نیاز به دانش متوسط و حرفهای نداشت . اون موقع با این مبحث آشنا شدم ولی چون به کارم نمیومد از کنارش گذشتم و حالا که نیازش دارم .............

perkas
دوشنبه 25 شهریور 1392, 10:08 صبح
با روشهای بالا کلی کد نویسی باید کرد

اگه یه پنل رو که درونش یه سری کنترلر هست رو کپی کنیم ( یا حتی یه فرم رو )
بعد پنل جدید تمام خواصش رو از پنل 1 به ارث ببره به نظر من منطقی تره

فقط یه خورده مشکل تو کد نویسیش دارم اگه کسی راهنمایی کنه ممنون میشم

narges_j
دوشنبه 25 شهریور 1392, 11:04 صبح
شاید این لینک ها کمکتون کنند.البته اگر درست متوجه منظورتون شده باشم

http://www.akadia.com/services/dotnet_inherited_forms.html
http://www.codeproject.com/Articles/20845/How-to-derive-from-a-parent-form

برای اضافه کردن یک پنل از یک فرم دگه به فرم جدید هم میشه با کد زیر این کار کرد


( private void Form2_Load(object sender, EventArgs e)
}
Form1 form = new Form1();
this.Controls.Add(form.panel1);
{


http://intext.nav-links.com/images/spinner-ani48.gif
http://intext.nav-links.com/images/dotclear.gif
http://intext.nav-links.com/images/intext-help5.png (http://intext.nav-links.com/help.html)
http://intext.nav-links.com/images/intext-close5.png


Discover sender
http://intext.nav-links.com/images/intext-thdefault3.png All The Best Choices. Discover sender Here Now

click here

AnswerGrab.com




http://intext.nav-links.com/images/box-arrow-rb2.png