2

我的意图是简单地将英尺转换为米。您能否提供有用的建议来填充“米”列?编写以下代码以在 Visual Studio 2008 C++ 的列表视图中显示两列:

//Show details
listView1->View = View::Details;
//Allow the user to change text
listView1->LabelEdit = true;
listView1->GridLines = true;

//Add 2 columns and 2 rows
listView1->Columns->Insert(0,"Feet",150, HorizontalAlignment::Center);
listView1->Items->Insert(0, "50");
listView1->Items->Insert(1, "20");
listView1->Columns->Insert(1,"Meters", 150, HorizontalAlignment::Center);
listView1->Items->Insert(0, "15.24");
listView1->Items->Insert(1, "6.10");

listView1 中的错误输出是:

Feet    Meters
15.24
6.10
50
20

listView1 中的输出应如下所示:

Feet    Meters
50      15.24
20      6.10

我确信我错过了一些简单的东西。感谢您的任何帮助:)

4

1 回答 1

3

详细模式下的 Listview 将列映射为每个项目的子项目。第一列显示项目文本本身,另一列使用其子项目。所以代码可能是:

listview1->Columns->Add("Feet", 150, HorizontalAlignment::Center);
listview1->Columns->Add("Meters", 150, HorizontalAlignment::Center);
listview1->Items->Add("50"); // this will be shown in column Feet
listview1->Items[0]->SubItems->Add("20"); // this will be shown in column Meters
listview1->Items->Add("15.24");
listview1->Items[1]->SubItems->Add("6.10");

注意:我使用了“添加”方法而不是“插入”,因为在这种情况下,项目和列的顺序无关紧要。我认为它比“插入”更方便。

我希望这对你有帮助。

于 2013-09-23T08:02:47.173 回答