gpt4 book ai didi

C# 窗体 : Convert Combobox ValueMember Property to long

转载 作者:行者123 更新时间:2023-11-30 21:24:27 25 4
gpt4 key购买 nike

我有一个带有 Id、Name 列的组合框。我已将这些值添加到带有数据表的组合框中:

        DataTable.Rows.Add(1, "Name1");
DataTable.Rows.Add(2, "Name2");

Id 列应该很长。但是,当我尝试获取 Id 值时,它说无法转换为 long:

long id;
id = this.comboBox1.ValueMember;

怎么做?

谢谢。


@BlueMonkMN,差不多了,但是当我尝试 MessageBox.Show 打印 1(来 self 上面的数据表值)

        MessageBox.Show(comboBox1.SelectedValue.ToString());

但是这一行

    id = (long)(comboBox1.SelectedValue);

抛出异常?

为什么1不能转为long?

最佳答案

首先,确定你需要的是长整型。常规整数 (int) 在 DataTable 中指定为 Systemn.Int32,通常在 32 位操作系统上效果最佳。这个整数的范围是从 -2,147,483,648 到 2,147,483,647。如果实际上您需要比这更大的整数,请继续在 DataTable 中使用 System.Int64,并在您的代码中使用 long。

接下来,您试图访问组合框的错误属性。您需要访问 SelectedValue 属性。 ValueMember 是确定绑定(bind)对象的哪个列/属性将由 SelectedValue 属性公开的属性。

下面是一些代码,大致说明了应该如何配置组合框:(从 InitializeComponent 生成的代码)

     this.dataTable1BindingSource = new System.Windows.Forms.BindingSource(this.components);
this.dataSet11 = new WindowsFormsApplication1.DataSet1();
//
// comboBox1
//
this.comboBox1.DataSource = this.dataTable1BindingSource;
this.comboBox1.DisplayMember = "Name";
this.comboBox1.ValueMember = "id";
//
// dataTable1BindingSource
//
this.dataTable1BindingSource.DataMember = "DataTable1";
this.dataTable1BindingSource.DataSource = this.dataSet11;

这里有一些代码说明了如何从组合框中检索选定的值,如果实际上您希望 id 是一个长整数:

     long id = (long)(comboBox1.SelectedValue);

关于C# 窗体 : Convert Combobox ValueMember Property to long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1218865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com