所以我一直在尝试在列表框中显示我的字符串行。然而,无论我怎么尝试,每个字符串的填充似乎都搞砸了。我该怎么办?有人知道在列表框中正确填充字符串的方法吗?
我尝试更改当前正在使用的格式化函数的值,就像以前对我一样。我将值从+ve更改为-ve,但这一切都不合理。它没有按照它应该的方式工作。
下面是我使用的格式化代码:
format = "{0, -30}{1, -30}{2, -30}{3, -30}{4, -30}{5, -30}";
listBoxLandowners.Items.Add(String.Format(format, "Landowner ID", "First Name", "Last Name", "City", "Street", "Street Number"));
SQL.selectQuery("select * from Landowner", null, null);
if(SQL.read.HasRows)
{
while(SQL.read.Read())
{
_landID = SQL.read[0].ToString();
_fName= SQL.read[1].ToString();
_lName = SQL.read[2].ToString();
_city = SQL.read[3].ToString();
_street = SQL.read[4].ToString();
_streetNum = SQL.read[5].ToString();
listBoxLandowners.Items.Add(String.Format(format, _landID,
_fName, _lName,_city, _street, _streetNum));
}
}
实际结果:
我想要它正确和整齐地填充,但无法让它工作。如果能帮上忙,我们将不胜感激。
发布于 2019-06-06 07:46:04
在WinForms中,对于多列,ListBox不是一个很好的控件。
尝试在详细信息模式下使用ListView。
var listviewLandOwners = new ListView();
listviewLandOwners.View = View.Details;
在此模式下,第一列由ListViewItem的Text
属性控制。第二列由SubItems[0]
控制。第三个是SubItems[1]
。等。因此,您的循环可能如下所示:
while(SQL.read.Read())
{
var newItem = listviewLandowners.Items.Add(SQL.read[1].ToString());
newItem.SubItems.Add(SQL.read[2].ToString());
newItem.SubItems.Add(SQL.read[3].ToString());
newItem.SubItems.Add(SQL.read[4].ToString());
newItem.SubItems.Add(SQL.read[5].ToString());
}
https://stackoverflow.com/questions/56469163
复制相似问题