Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# winform应用程序中从GUI更改列宽时的文本对齐_C#_Winforms_Visual Studio_Listview - Fatal编程技术网

C# winform应用程序中从GUI更改列宽时的文本对齐

C# winform应用程序中从GUI更改列宽时的文本对齐,c#,winforms,visual-studio,listview,C#,Winforms,Visual Studio,Listview,我开发了一个winform应用程序。它有一个列表视图,其中有多个具有不同文本的列。最初,我将列宽设置为-2,以获取列中最长文本的大小 问题是,有时文本会超出笔记本电脑屏幕,列表视图中会出现一个水平滚动条 为了适应屏幕中的所有列,我在GUI中使用列边界手动修改了列宽。修改列宽时,列文本开始从右侧消失。我想让它从左边消失 我找了很多《护目镜》,但没有找到答案 这个问题可能看起来很奇怪,也可能是我没有正确解释。如果需要更多信息,请告诉我 提前感谢。Windows窗体中的Listbox列并不完全是一个高

我开发了一个winform应用程序。它有一个列表视图,其中有多个具有不同文本的列。最初,我将列宽设置为-2,以获取列中最长文本的大小

问题是,有时文本会超出笔记本电脑屏幕,列表视图中会出现一个水平滚动条

为了适应屏幕中的所有列,我在GUI中使用列边界手动修改了列宽。修改列宽时,列文本开始从右侧消失。我想让它从左边消失

我找了很多《护目镜》,但没有找到答案

这个问题可能看起来很奇怪,也可能是我没有正确解释。如果需要更多信息,请告诉我


提前感谢。

Windows窗体中的Listbox列并不完全是一个高级控件,我曾多次使用过它,但仅用于简单的列表,它肯定没有内置函数来生成所需的内容,要获得它,可能需要对控件进行子类化,为列表中管理的项目创建一个新类,并编写一些代码来执行所需的操作。
我想你可以在Charles Petzold关于windows窗体的书中找到一些关于如何实现这一切的提示,他在书中展示了如何测量字符串以及如何直接在控件上绘制。

不是内置选项,文本总是左对齐的。您需要使用DrawSubItem事件以您想要的方式获取它。使用MSDN文章中的示例代码开始。