C#中DataGridView控件的行头显示序号的宽度适中也就是RowHearWidth属性 我想让行头显示是左对齐显示序号 100

举例*那行我想设置左对齐并且能显示序号如1~10*行属性宽度可以设置但是设置后*行里面的序号显示不出来求C#的源代码... 举例 *那行我想设置左对齐 并且能显示序号 如1~10 *行属性宽度可以设置 但是设置后*行里面的序号显示不出来 求C#的源代码 展开
 我来答
greystar_cn
2015-07-03 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
你可以重写DataGridView的OnRowPostPaint方法或者直接在DataGridView的RowPostPaint事件里写,如下(重写DataGridView的OnRowPostPaint方法)
using System;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace Test
{
class DataGridViewEx : DataGridView
{
SolidBrush solidBrush;
public DataGridViewEx()
{
solidBrush = new SolidBrush(this.RowHeadersDefaultCellStyle.ForeColor);
}
protected override void OnRowPostPaint(DataGridViewRowPostPaintEventArgs e)
{
e.Graphics.DrawString((e.RowIndex + 1).ToString(), e.InheritedRowStyle.Font, solidBrush, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5);
base.OnRowPostPaint(e);
}
}
}
尚仙2121
2015-07-03 · TA获得超过143个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:193万
展开全部

控件添加如下事件即可在*号那个位置显示序号:

//datagridview添加行号
        private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
        {
            e.Row.HeaderCell.Value = (e.Row.Index + 1).ToString();
        }

至于左对齐,控件有个RowHeadersDefaultCellStyle属性,试试可行否。

追问
是这样的 我现在要做的是要把行头向左靠并且居中 我如果改宽度的话 我确实能达到向左靠齐 但是里面的序号只能显示一半 比如说我序号是1-10 我改变了宽度后只显示了1-        10就在后面没显示出来 我要做的是能让1-10全部显示出来 并且能靠左居中
追答
貌似靠不了左,因为左侧有个小三角,除非重写控件,这个就比较麻烦了。
你说的序号只能显示一半,是因为行头宽度不够,拉宽一点就可以显示全了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bai_zyn_du
2018-04-18 · TA获得超过130个赞
知道答主
回答量:8
采纳率:0%
帮助的人:4.6万
展开全部
具体做法是将DataGridView的RowsHeaderWidthSizeMode属性设置为AutoSizeToAllHeaders或者AutoSizeToDisplayedHeaders,这样自动设置宽度就不会出现行指示符挤压行号的情况了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式