在Winforms DataGridView中,我如何:
RowHeadersVisible = false。发布于 2012-08-31 12:08:43
首先,重写称为DataGridView的函数
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
e.PaintHeader(DataGridViewPaintParts.All & ~DataGridViewPaintParts.ContentBackground);
}在按钮上单击“向行标题添加值”。
private void button1_Click(object sender, EventArgs e)
{
string a = "khan yousafzai";
dataGridView1.RowHeadersWidth = dataGridView1.RowHeadersWidth +(7* a.Length);
dataGridView1.Rows[0].HeaderCell.Value = a;
dataGridView2.Rows.Add();
}发布于 2012-08-30 02:53:05
SortMode设置为NotSortable。如果需要排序,但不显示箭头,请将列SortMode设置为Programmatic,并手动对列Click或MouseDown事件中的数据源进行排序。Graphics类获取文本的宽度,然后相应地设置列宽:
图形g= this.CreateGraphics();int w=this.CreateGraphics dataGridView1.Font).Width;发布于 2013-01-17 12:33:59
首先,如何将数字行RowHeadersWidth添加到C# .Net 2.0及更高版本的DataGridView中:
// On Form_Load add the numeration to DataGridView Row Header
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = (i + 1).ToString();
}现在,您可以根据行头的大小动态调整其大小,就像在Microsoft中一样。
// Dinamically adjust row header size to max current width available (like Microsoft Excel does)
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
int firstDisplayedCellIndex = dataGridView1.FirstDisplayedCell.RowIndex;
int lastDisplayedCellIndex = firstDisplayedCellIndex + dataGridView1.DisplayedRowCount(true);
Graphics Graphics = dataGridView1.CreateGraphics();
int measureFirstDisplayed = (int)(Graphics.MeasureString(firstDisplayedCellIndex.ToString(), dataGridView1.Font).Width);
int measureLastDisplayed = (int)(Graphics.MeasureString(lastDisplayedCellIndex.ToString(), dataGridView1.Font).Width);
int rowHeaderWitdh = System.Math.Max(measureFirstDisplayed, measureLastDisplayed);
dataGridView1.RowHeadersWidth = rowHeaderWitdh + 35;
}此解决方案仅适用于.Net Framework2.0及以上版本,而不适用于CF。
https://stackoverflow.com/questions/12188788
复制相似问题