PDA

View Full Version : چک باکس داخل هدر Column دیتاگرید ویو



Sal_64
جمعه 01 آذر 1387, 19:41 عصر
سلام


آیا در ویژوال استدیو این امکان وجود داره که یک ستون از دیتاگرید رو که از نوع چک باکس تعریف کردیم

در هدر column اون هم یک چک باکس قرار داد مثل بخش چک میل در یاهو که با زدن تیک چک باکس موجود در کالم ایمیل ها میشه همه رو با هم انتخاب کرد


البته کامپوننتها رو دیدم که این کار رو می کنند
ولی خواستم بدونم خود vs هم این قابلیت رو داره


با تشکر :قلب:

masoud_parsa
شنبه 02 آذر 1387, 11:19 صبح
براي اضافه كردن چك باكس بايد از اين كد استفاده كني


private void Form1_Load(object sender, EventArgs e)
{
c1 = new DataGridViewCheckBoxColumn();
c1.Name = "selection";
c1.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
this.dataGridView1.Columns.Add(c1);

this.dataGridView1.Rows.Add();
this.dataGridView1.Rows.Add();
this.dataGridView1.Rows.Add();
this.dataGridView1.Rows.Add();

ckBox = new CheckBox();
//Get the column header cell bounds
Rectangle rect =
this.dataGridView1.GetCellDisplayRectangle(0, -1, true);
ckBox.Size = new Size(18, 18);
//Change the location of the CheckBox to make it stay on the header
ckBox.Location = rect.Location;
ckBox.CheckedChanged += new EventHandler(ckBox_CheckedChanged);
//Add the CheckBox into the DataGridView
this.dataGridView1.Controls.Add(ckBox);
}

DataGridViewCheckBoxColumn c1;
CheckBox ckBox;

void ckBox_CheckedChanged(object sender, EventArgs e)
{
for (int j = 0; j < this.dataGridView1.RowCount; j++)
{
this.dataGridView1[0, j].Value = this.ckBox.Checked;
}
this.dataGridView1.EndEdit();
}
}

Sal_64
شنبه 02 آذر 1387, 20:38 عصر
سلام

تشکر :بوس:

جالب بود

چطور میشه چک باکس رو وسط هدر قرار داد
با کد زیر درست دقیقا وسط قرار نمی گیره

int x = rect.Location.X + dgv.Columns[0].Width / 2;
int y = rect.Location.Y;
ckBox.Location = new System.Drawing.Point(x, y);با تشکر

masoud_parsa
یک شنبه 03 آذر 1387, 10:39 صبح
اين رو خودم هم هنوز نتونستم پيدا كنم اگه پيدا كردم برات مي ذارم اينجا

Sal_64
سه شنبه 12 آذر 1387, 16:48 عصر
سلام


برای رویداد اسکرولش هم فکری کردین

اسکرول افقی باعث میشه که چک باکس ثابت سر جاش بمونه و دیتاگرید جابه جا شه :ناراحت:


با تشکر