PDA

View Full Version : سوال: قراردادن عدد در ستون کناری datagridview



SHD.NET
پنج شنبه 29 فروردین 1392, 23:26 عصر
سلام. اگه دقت کرده باشید در کنار دیتاگرید (ستون کوچک) وجود داره ،
سوال من اینه که چجوری میشه توی اون عدد از 1 تا آخرین رکوردمون قرار بدیم ؟؟

اگه منظورمو متوجه نشدین عکس ضمیمه واضحه که دقیقا میخوام چیکار کنم

Mahmoud.Afrad
جمعه 30 فروردین 1392, 00:55 صبح
ابتدا پراپرتی زیر رو تنظیم کنید:
dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllH eaders;
و رویداد RowPostPaint را به صورت زیر بنویسید:

private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
Rectangle rec = new Rectangle(e.RowBounds.X + 18, e.RowBounds.Y + 2, dataGridView1.RowHeadersWidth, dataGridView1.RowTemplate.Height);
e.Graphics.DrawString((e.RowIndex + 1).ToString(), dataGridView1.Font, Brushes.Black, rec);
}

alexmcse
شنبه 31 فروردین 1392, 01:15 صبح
سلام
private void Button6_Click(object sender, System.EventArgs e)
{

int rowNumber = 1;
foreach (DataGridViewRow row in dataGridView.Rows)
{

row.HeaderCell.Value = "Row " + rowNumber;
rowNumber = rowNumber + 1;
}
dataGridView.AutoResizeRowHeadersWidth(
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllH eaders);
}

Behnam6670
شنبه 31 فروردین 1392, 07:38 صبح
موفق باشی

private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
int hpadding = 40;
Graphics graphic = dataGridView1.CreateGraphics();
dataGridView1.RowHeadersWidth = (int)graphic.MeasureString(dataGridView1.RowCount. ToString("N0"), dataGridView1.Font).Width + hpadding;
graphic.Dispose();
dataGridView1.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
foreach (DataGridViewRow dr in dataGridView1.Rows)
{
dr.HeaderCell.ValueType = System.Type.GetType("System.String");
dr.HeaderCell.Value = (dr.Index + 1).ToString("N0");
}
}

esafb52
شنبه 31 فروردین 1392, 19:27 عصر
ابتدا پراپرتی زیر رو تنظیم کنید:
dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllH eaders;
و رویداد RowPostPaint را به صورت زیر بنویسید:

private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
Rectangle rec = new Rectangle(e.RowBounds.X + 18, e.RowBounds.Y + 2, dataGridView1.RowHeadersWidth, dataGridView1.RowTemplate.Height);
e.Graphics.DrawString((e.RowIndex + 1).ToString(), dataGridView1.Font, Brushes.Black, rec);
}

سلام کدتون جواب داد ولی چرا رایت تو لیفتش کردم هنوز همومن جا موندن؟؟؟!!یعنی سمت چپ

Mahmoud.Afrad
یک شنبه 01 اردیبهشت 1392, 04:17 صبح
یک متد بنویسید و در جاهایی که تعداد و ترتیب سطرها تغییر میکنه اونو فراخوانی کنید.

private void setRowNumbers()
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.HeaderCell.Value = (row.Index + 1).ToString();
}
}

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
setRowNumbers();
}

private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
setRowNumbers();
}

private void dataGridView1_Sorted(object sender, EventArgs e)
{
setRowNumbers();
}