vb 6.0 Listview控件 怎样实现根据字符长度自动调整列宽?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb 6.0 Listview控件 怎样实现根据字符长度自动调整列宽?相关的知识,希望对你有一定的参考价值。

参考技术A 工程中引入如下代码就可以自动调整列宽了。
Private
Declare
Function
SendMessage
Lib
"user32"
Alias
"SendMessageA"
(ByVal
hwnd
As
Long,
ByVal
wMsg
As
Long,
ByVal
wParam
As
Long,
lParam
As
Any)
As
Long
Private
Sub
AutosizeColumns(ByVal
TargetListView
As
ListView)
Const
SET_COLUMN_WIDTH
As
Long
=
4126
Const
AUTOSIZE_USEHEADER
As
Long
=
-2
Dim
lngColumn
As
Long
For
lngColumn
=
0
To
(TargetListView.ColumnHeaders.Count
-
1)
Call
SendMessage(TargetListView.hwnd,
SET_COLUMN_WIDTH,
lngColumn,
ByVal
AUTOSIZE_USEHEADER)
Next
lngColumn
End
Sub

Delphi中怎样用代码添加控件

比如我运行的时候,在Form1中单击按钮,就会在Form2中添加一个Label控件,应该怎么写?
如果用EXCEL的话,那么请问一下,怎么打印我查询的某几条记录呢?

A和B表通过什么字段关连呢?公司名?这个知道了才好写语句

Delphi好象有几个控件可以操纵EXCEL的,当然用OLE自动化也可以,以下是找到的一些控件的使用例子,熟悉后应该能实现你的功能了:

在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。
打开Excel
ExcelApplication1.Connect;
显示当前窗口:
ExcelApplication1.Visible[0]:=True;
更改 Excel 标题栏:
ExcelApplication1.Caption := \'应用程序调用 Microsoft Excel\';
添加新工作簿:
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
添加新工作表:
var Temp_Worksheet: _WorkSheet;
begin
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
End;
打开已存在的工作簿:
ExcelApplication1.Workbooks.Open (c:\\a.xls
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
设置第2个工作表为活动工作表:
ExcelApplication1.WorkSheets[2].Activate; 或
ExcelApplication1.WorksSheets[ \'Sheet2\' ].Activate;
给单元格赋值:
ExcelApplication1.Cells[1,4].Value := \'第一行第四列\';
拷贝整个工作表:
ExcelApplication1.ActiveSheet.Used.Range.Copy;
拷贝指定区域:
ExcelApplication1.ActiveSheet.Range[ \'A1:E2\' ].Copy;
从A1位置开始粘贴:
ExcelApplication1.ActiveSheet.Range.[ \'A1\' ].PasteSpecial;
从文件尾部开始粘贴:
ExcelApplication1.ActiveSheet.Range.PasteSpecial;
插入一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
b. ExcelApplication1.ActiveSheet.Columns[1].Insert;
删除一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
打印预览工作表:
ExcelApplication1.ActiveSheet.PrintPreview;
打印输出工作表:
ExcelApplication1.ActiveSheet.PrintOut;
工作表保存:
if not ExcelApplication1.ActiveWorkBook.Saved then
ExcelApplication1.ActiveSheet.PrintPreview;
工作表另存为:
ExcelApplication1.SaveAs( \'C:\\Excel\\Demo1.xls\' );
放弃存盘:
ExcelApplication1.ActiveWorkBook.Saved := True;
关闭工作簿:
ExcelApplication1.WorkBooks.Close;
退出 Excel:
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
参考技术A Tform1.btn1click(sender:Tobject);
var
label1:TLabel;
begin
label1:=TLabel.create(Form2);
with label1 do begin
left:=32;
top:=32;
caption:='例子';
name:='label1';
end;
end;
参考技术B Form2中写个方法:
procedure CreateLabel ;
var
label:TLabel;
begin
label:=TLabel.create(self);
label.left:=10;
label.top:=10;
label.caption:='label';
end;
然后在Form1中引入Form2的单元
button下写Forms.CreateLabel;
参考技术C 有一个简单办法:先隐藏控件,在单击的时候显示即可。
例如:先设置他的visible属性为False.
在按钮里添加如下代码:label1.Visible := True;

以上是关于vb 6.0 Listview控件 怎样实现根据字符长度自动调整列宽?的主要内容,如果未能解决你的问题,请参考以下文章

VB6的MSCOMCTL.OCX控件(Microsoft Windows Common Controls 6.0)不能用了,怎样解决?

vb listview上被选择的多个行的某个列的内容怎样得到?

vb listview列的宽度随着窗体大小变化,怎样做到?

vb6加载时提示出错,窗体log文件中错误信息为:控件 XX 的类 MSComctlLib.ListView 不是一个已加载的控件类。

对VB中的richtextbox的单个字进行颜色设置应怎样呢

vb listview控件问题