Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当所选项目发生更改时,如何从列表框中检索所有数据_C#_Listbox - Fatal编程技术网

C# 当所选项目发生更改时,如何从列表框中检索所有数据

C# 当所选项目发生更改时,如何从列表框中检索所有数据,c#,listbox,C#,Listbox,我将datatable作为数据源提供给Lisbox。 表字段是ID、主题、文本,ID是唯一字段(PK)。 但主题显示为DisplayMember 以下是我的数据源代码: lbTexts.DataSource = mDataSet.Tables["Story"]; lbTexts.DisplayMember = "Subject"; 我想知道用户选择了哪些行以及唯一值是什么。 我发现它有10行代码。但我希望有一个简单的方法找到它 用于获取当前选定的项目,并用于获取值 selectedItem的示

我将datatable作为数据源提供给Lisbox。 表字段是ID、主题、文本,ID是唯一字段(PK)。 但主题显示为DisplayMember

以下是我的数据源代码:

lbTexts.DataSource = mDataSet.Tables["Story"];
lbTexts.DisplayMember = "Subject";
我想知道用户选择了哪些行以及唯一值是什么。 我发现它有10行代码。但我希望有一个简单的方法找到它

用于获取当前选定的项目,并用于获取值

selectedItem的示例

String value = lbTexts.SelectedItem.Value;
所选值的示例:

String txt = lbTexts.SelectedValue.ToString();
试试这个

string value = lbTexts.SelectedItem.Value;

如果使用ValueMember属性并将其设置为Id,则可以使用SelectedValue参数,而不需要整个数据集。当列表中选定的索引与数据中的索引不匹配时,还可以保证不会出现重新调用错误

lbTexts.ValueMember = "Id";

// Later
int selectedId = Int32.Parse(lbTexts.SelectedValue);

试着用lbtext.SelectedItem.ValuePost你的代码,这样我们就知道你想做什么,你一直说那不是你想要的,但你的问题是,那不是我真正想知道的。但无论如何,谢谢。我想知道SelectedItem的“ID”字段值是多少。最后我写了下面的内容,效果很好。是否正确:D string str=(lbtext.DataSource作为DataTable).Rows[lbtext.SelectedIndex][“Subject”].ToString()@Bekhbayar,不,这不是正确的做法。请使用我在帖子中提到的slectedem。谢谢,这不是我想知道的。但无论如何,谢谢。我想知道selectedItem的“ID”字段值是多少你用这个来获取selectedItem的所有字段,所以你得到了ID?!显然,你在它周围放置了一个循环,循环次数为10次或你想要的次数,它会按照你在问题中的要求执行。我只是尝试如下:string str=(lbtext.SelectedItem as DataRow)[“StoryID”].ToString();但它给出了对象引用异常:D我应该如何准确地得到这个值似乎我得到了D
string str=(lbtext.DataSource作为DataTable).Rows[lbtext.SelectedIndex][“ID”].ToString()否否。。。它不是实际的ID,只是索引。如果我对数据表进行排序,它将无法正常工作,除非我可以使用它。或者我可以在将数据表作为数据源提供给listbox之前对其进行排序。这是一种解决方案,我认为+1,@Bekhbayar如果对你有效,你应该接受这是最好的答案!