سوال در مورد Tab و ListBox در سی شارپ
#1
Note 
سلام
یک سوال داشتم! (طبق معمول)

این پروژه رو اول دانلود کنید :


خب همونطور که توی پروژه میبینید وقتی روی لیست باکس ( مثلا pashmak1 یا pashmak2 ) دوبار کلیک میکنید یک فرم 2 با اسم همون شخص باز میشه ( مثلا یه نام pashmak1 و pashmak2 )
حالا میخواستم بپرسم که چطوری میشه دقیقا همینکار رو کرد اما به یک صورت دیگه :
وقتی روی pashmak1 یا بقیه کلیک کنند فرم 2 رو با tabControl1 نشون بده و برای هر بار کلیک جای اینکه فرم 2 از اول باز شه ، یک تب به همون نامی که در لیست باکس هست بسازه و قابلیت Close هم برای هر کدوم داشته باشه :
مثلا مثل این :

[تصویر:  q5291_2563.png]

هر تب هم شامل یک تکست باکس باشه و یک BUTTON

امیدوارم که فهمیده باشید چون میدونم گُنگ گفتم

ممنون میشم کمکم کنید

پاسخ
#2
Note 
سلام اگه درست فهمیده باشم میخواید از فرم1 به فرم 2 کنترل اضافه کنید

نکته خیلی مهم: خاصیت Modifiers کنترل TabControl رو باید روی public بذارید.

سورس کامل:

[CSHARP]using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Form2 frm = new Form2();
public Form1()
{
InitializeComponent();
}

private void listBox1_DoubleClick(object sender, EventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
string title = (string)listBox1.SelectedItem;
TabPage myTabPage = new TabPage(title);
frm.tabControl1.TabPages.Add(myTabPage);

//create button and it's event
Button button1 = new Button();
button1.Click += new System.EventHandler(button1_Click);
button1.Location = new Point((myTabPage.Width / 2) - (button1.Width / 2), myTabPage.Height - 30);
button1.Text = "Click On Me!";
button1.AutoSize = true;
myTabPage.Controls.Add(button1);

//create button and it's event
Button button2 = new Button();
button2.Click += new System.EventHandler(button2_Click);
button2.Location = new Point((myTabPage.Width / 2) - (button1.Width / 2)+button1.Width+20, myTabPage.Height - 30);
button2.Text = "Close Tab";
button2.AutoSize = true;
myTabPage.Controls.Add(button2);

//Add textbox control to new tabpage
TextBox textBox1 = new TextBox();
textBox1.Location = new Point(5, 5);
textBox1.Text = "type some text...";
textBox1.Multiline = true;
textBox1.Height = button1.Top - 10;
textBox1.Width = myTabPage.ClientRectangle.Width - 10;
myTabPage.Controls.Add(textBox1);
}
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("You Clicked on me!");
}
private void button2_Click(object sender, EventArgs e)
{
frm.tabControl1.TabPages.Remove(frm.tabControl1.SelectedTab);
}

private void btnShow_Click(object sender, EventArgs e)
{
frm.Text = "Softafzar.net";
frm.Show();
}


}
}
[/CSHARP]

پروژه هم پیوست شد.

پاسخ
#3
Note 
سلام دقیقا همون چیزی بود که میخواستم اما با این تفاوت!!!! که دیگه دکمه ShoW Form2 در فرم نباشه و وقتی که روی خود لیست باکس کلیک کنی این کار رو انجام بده
ممنون و سپاس گذارم

پاسخ
#4
Note 
خوب این رو که خودت تو پروژت نوشته بودی حالا نمیتونی دوباره همون کارو بکنی؟

[CSHARP]
frm.Show();[/CSHARP]
رو بذار بعد کد
[CSHARP] if (listBox1.SelectedIndex != -1)
{[/CSHARP]

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note کتاب آموزش Parse کردن یک خبر خوان وردپرسی برای ویندوزفون The Arrow 0 978 23-04-2015 ساعت 09:24
آخرین ارسال: The Arrow
Note سوال ساخت تقویم فارسی در ویندوز 8.1 The Arrow 2 991 16-01-2015 ساعت 00:32
آخرین ارسال: The Arrow
Note دیتابیس SQLite در سی شارپ The Arrow 3 2,430 07-11-2014 ساعت 22:40
آخرین ارسال: VBProgrammer
Note FileAssociation در سی شارپ The Arrow 1 566 05-11-2014 ساعت 12:32
آخرین ارسال: SOFTAFZAR
Note آموزش کامل سی شارپ (ویدئو) xMAN 2 682 02-10-2014 ساعت 12:50
آخرین ارسال: xMAN
Note explorer سی شارپ cMan 1 484 30-08-2014 ساعت 12:07
آخرین ارسال: SOFTAFZAR
Note پیدا کردن متن در سی شارپ arfanz 7 877 27-08-2014 ساعت 01:10
آخرین ارسال: The Arrow
Note برنامه نویسی موازی با سی شارپ xMAN 0 450 05-08-2014 ساعت 12:01
آخرین ارسال: xMAN
Note جستجو در یک متن در سی شارپ arfanz 12 2,238 16-07-2014 ساعت 09:32
آخرین ارسال: Stack OverFlow
Note مخفف کنترلهای سی شارپ mshayan 2 847 15-07-2014 ساعت 13:32
آخرین ارسال: mshayan

کاربرانِ درحال بازدید از این موضوع:   1 مهمان