ListView控件列姓名设置右对齐,发现没有效果
ListView控件列名称设置右对齐,发现没有效果
我用一段很简单的代码试图右对齐第一列的标题:
结果发现列标题还是左对齐:

这是为什么呢?
没有起作用吗?
------解决方案--------------------
ColumnHeader.TextAlign 属性
ListView.DrawSubItem 事件
------解决方案--------------------
嗯,因为ListView其实来自对Windows公共控件库API的封装,而Windows系统根本没有让第一列右对齐的功能(你可以看别人的软件,也很难找到这么做的。)
如果你不想重绘,你也可以让第一列仅仅显示图标,并且设置列宽很小,跳过它。
我用一段很简单的代码试图右对齐第一列的标题:
this.listView1.Columns.Add("Name", 80, HorizontalAlignment.Right);//根本就没有右对齐,还是左对齐,原因?
this.listView1.Columns.Add("Date", 40, HorizontalAlignment.Center);
ListViewItem itemMe = new ListViewItem();
listView1.Items.Add(itemMe).Text="First";
this.listView1.View = System.Windows.Forms.View.Details;
结果发现列标题还是左对齐:
这是为什么呢?
没有起作用吗?
------解决方案--------------------
ColumnHeader.TextAlign 属性
ListView.DrawSubItem 事件
//当绘制 ListView 的详细信息视图并且 OwnerDraw 属性设置为 true 时发生。
//设置OwnerDraw = true;
//this.listView1.OwnerDraw = true;
private void listView1_DrawColumnHeader(object sender,
DrawListViewColumnHeaderEventArgs e)
{
}
private void listView1_DrawSubItem(object sender,
DrawListViewSubItemEventArgs e)
{
}
------解决方案--------------------
嗯,因为ListView其实来自对Windows公共控件库API的封装,而Windows系统根本没有让第一列右对齐的功能(你可以看别人的软件,也很难找到这么做的。)
如果你不想重绘,你也可以让第一列仅仅显示图标,并且设置列宽很小,跳过它。