高手们啊!十万火急!帮帮忙啊!关于LISTVIEW的显示问题

八面金刚 2007-04-25 11:22:25
我做了FORM来显示LISTVIEW,当不加载InitializeComponent();时,可以正确显示表中的内容,但是一加载InitializeComponent();时,就成白板了,高手们,这是什么原因啊!

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;

namespace WEFSINFO
{
public class frmlistv: Form
{ // 定义数据连接的字符串

private System.Windows.Forms.ListView lv;
Database data = new Database();
//private ListView lv;

private void InitializeComponent()
{
this.lv = new System.Windows.Forms.ListView();
this.SuspendLayout();
//
// lv
//
this.lv.Dock = System.Windows.Forms.DockStyle.Fill;
this.lv.Location = new System.Drawing.Point(0, 0);
this.lv.MultiSelect = false;
this.lv.Name = "lv";
this.lv.Size = new System.Drawing.Size(584, 387);
this.lv.TabIndex = 0;
//
// frmlistv
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(584, 387);
this.Controls.Add(this.lv);
this.Name = "frmlistv";
this.ResumeLayout(false);

}



//public frmlistv(DPControls.Controls.WFrame wFrame)
public frmlistv()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
Vlist();

}

[STAThread]
static void Main()
{
Application.Run(new frmlistv());
}

void Vlist()
{
data.Open();

this.Left = 0;
this.Top = 0;
this.Text = "在ListView中显示数据库内容!";

// 初始化ListView
lv = new ListView();
lv.Left = 0;
lv.Top = 0;
lv.Width = 700;
lv.Height = this.ClientRectangle.Height;
lv.GridLines = true; //显示各个记录的分隔线
lv.FullRowSelect = true; // 要选择就是一行
lv.View = View.Details; // 定义列表显示的方式
lv.Scrollable = true; // 需要时候显示滚动条
lv.MultiSelect = false; // 不可以多行选择
lv.HeaderStyle = ColumnHeaderStyle.Nonclickable;
// 针对数据库的字段名称,建立与之适应显示表头
lv.Columns.Add ("姓名",60,HorizontalAlignment.Right);
lv.Columns.Add ("住宅电话",100,HorizontalAlignment.Left);
lv.Columns.Add ("办公电话",100,HorizontalAlignment.Left);

lv.Visible = true;

OleDbDataReader reader;

string strCommand = "select aag001,aag002,aag003 from wefsi.aa07";

OleDbCommand cmd = new OleDbCommand (strCommand,data.con);
//获得数据集
reader = cmd.ExecuteReader();

// 不断往列表中添加数据记录
while (reader.Read())
{
ListViewItem li = new ListViewItem();
li.SubItems.Clear();
li.SubItems[0].Text = reader["aag001"].ToString();
li.SubItems.Add (reader["aag002"].ToString());
li.SubItems.Add (reader["aag003"].ToString());

lv.Items.Add (li);
}
// 关闭数据集
reader.Close();
this.Controls.Add (lv);

}
}
}
...全文
233 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
s1731 2007-04-25
  • 打赏
  • 举报
回复
刷新一下form看看。
可能你会有惊喜哦。
八面金刚 2007-04-25
  • 打赏
  • 举报
回复
分不多了啊!
八面金刚 2007-04-25
  • 打赏
  • 举报
回复
帮帮忙啊!
八面金刚 2007-04-25
  • 打赏
  • 举报
回复
谢谢!已经解决了
whslovexyp 2007-04-25
  • 打赏
  • 举报
回复
this.lv = new System.Windows.Forms.ListView();和
lv = new ListView();
重复定义了,建议和楼上的一样.去掉,然后把InitializeComponent();加上.
最麻烦的是直接删掉你的Form,重新加listview,再写代码.
ufoteam 2007-04-25
  • 打赏
  • 举报
回复
lv = new ListView();
this.Controls.Add (lv);
这两句去掉,看看怎样

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧