如何获取组合框项目计数

how to get ComboBox items count

本文关键字:项目 组合 何获取 获取      更新时间:2023-10-16

我正在尝试使用以下代码获取组合框项目计数。它不会给出错误,也不会给出正确的计数量。我想我必须将 int 转换为字符串,但是如何?

ComboBox1->ItemIndex = 1;
int count = ComboBox1->Items->Count;
Edit1->Text =  "Count: " + count;

此行

 int count = ComboBox1->Items->Count; 

返回 TComboBox 中字符串项的数量。您需要在设置之前检查这一点

ComboBox1->ItemIndex = 1;

因为 ItemIndex 用于在组合框中设置所选项目,并且计数为零。要在 Embarcadero 中将整数转换为字符串,您可以使用IntToStr()函数

Edit1->Text = "Count:" + IntToStr(count)

您将需要#include "System.hpp"才能访问该功能

ComboBox1->ItemIndex = 1;
int count = ComboBox1->Items->Count;
Edit1->Text =  "Count: " + count;

这里"Count: " + count是一个表达式,其中"Count: "衰减为指向字符串第一个元素的指针,count被添加到该指针中,结果是它要么指向字符串中的某个地方(OK),要么指向字符串的末尾(通常是未定义的行为)。

关于ComboBox1的使用,您没有显示其声明,也没有提到您正在使用哪个 GUI 框架(如果有)。

因此,如果不猜测它是什么,就无法说出它。

为了创建带有插入文本值表示的格式化文本,您可以使用例如<sstream>标题中的std::ostringstream,如下所示:

std::ostringstream stream;
stream << "Count: " << count;
Edit1->text = stream.str().c_str();

.c_str()的调用可能是必要的,也可能不是必需的,具体取决于Edit1.text接受的内容。

ComboBox1->ItemIndex = 1; 
int count = ComboBox1->Items->Count;
Edit1->Text =  "Count: " + count;
没有必要

经历所有这些杂耍。一个简单的函数可用于此。

int count = ComboBox1.GetItemCount();