سوال در مورد Tab و ListBox در سی شارپ

#C

توسط thearrow در 5 سال پیش
0 1k 3 5 سال پیش
thearrowreza-irdevphp-sec
0

سلام یک سوال داشتم! (طبق معمول)

این پروژه رو اول دانلود کنید :http://uploadtak.com/images/c8926_listbox.rar

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

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

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

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

0

سلام اگه درست فهمیده باشم میخواید از فرم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]

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

0

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

0

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

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

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید