数据绑定在表单加载之前不起作用 - 组合框项仅在表单加载后初始化

2024-01-16

我在 winform 上有两个组合框,一个包含列表“MyList”中的所有值,另一个我想拥有第一个选定索引中的所有值。但我认为将项目加载到组合框中时存在问题。

public partial class Form1 : Form
{
    public Form1()
    {
        ComboBox box = new ComboBox();
        box.DropDownStyle = ComboBoxStyle.DropDownList;
        box.DataSource = MyList.ToList();
        box.SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);
        Tab_Page.Controls.Add(box);

        ComboBox box2 = new ComboBox();
        box2.DropDownStyle = ComboBoxStyle.DropDownList;
        foreach (object o in box.Items)
            {
                box2.Items.Add(o);
            }
        Tab_Page.Controls.Add(box2);
        box2.Items.RemoveAt(0);
        //This last line throws an error
        //"InvalidArgument=Value of '0' is not valid for 'index'."
    }}

该错误是因为 box2 的集合中没有项目,即使 box 在引发此错误时具有 List 中的所有值。

所以我想知道项目到底如何/何时加载到 Items 集合中以及如何解决这个问题?


在表单和控件进入之前,数据绑定将不起作用Created https://msdn.microsoft.com/en-us/library/system.windows.forms.control.created(v=vs.110).aspx状态并且在表单和控件变得可见之前它们不处于其中Created status.

这里的问题是由于上述事实。您正在使用数据绑定将项目添加到构造函数中的第一个组合,如上所述,数据绑定将不起作用,因此在循环中,Items第一个组合的集合尚为空,不会将任何项目添加到第二个组合中。

您可以使用以下任一选项解决问题:

  • 直接添加值Items第一个组合:box.Items.AddRange(MyList.ToArray());
  • 将代码放入Shown or Load表单的事件。
  • 在尝试检索之前使表单可见Items第一个组合。例如调用this.Show();赋值给之后DataSource第一个组合。呼唤this.Show(); or this.Visible = true;导致窗体及其所有可见控件得到Created。因此,控件应该是可见的,并且应该是可见窗体的可见部分的成员。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据绑定在表单加载之前不起作用 - 组合框项仅在表单加载后初始化 的相关文章

  • 为什么选项卡页正文不使用 .NET 选项卡控件进行更新?

    我在使用 C Visual Studio 2010 中的 NET TabControl 时遇到一个奇怪的问题 启动 Windows 窗体应用程序 添加一个选项卡控件和一个按钮 向两个选项卡页添加两个不同的标签 以便您可以区分它们 该按钮的作
  • 在 C 中读取字符时打印

    我正在尝试编写一个简单的小代码片段来响应箭头键按下 我知道 up 由 A 表示 并且我有以下代码来检查该序列 while 1 input char fgetc stdin if input char EOF input char n bre
  • System.Drawing.dll / NumericUpDown 的 .NET 访问冲突异常

    我遇到了一个非常愚蠢的问题 我已经尝试完全重新安装 NET 但它没有解决问题 我什至无法通过谷歌搜索找到其他有同样问题的人 就在我的计算机上 如果我将 NumericUpDown 控件添加到 NET 项目中的窗体并运行该应用程序 则在运行该
  • 通过 WCF 提供类对象的数组或列表

    任何提供自定义类对象列表或数组的 WCF 客户端服务器示例都会对我有所帮助 但这是我到目前为止所得到的 这是我想提供的班级系统 namespace NEN Server FS Serializable public class XFS pr
  • 如何将多种语言设置放入单个 .clang-format 文件中

    我想为 java javascript 和 c 创建一个 clang 格式 我知道如何转储单一语言的示例配置 但不知道如何合并这 3 个配置文件 有关如何将多种语言配置放入单个文件中的示例 BasedOnStyle LLVM IndentW
  • 如何在 Mac OS X 中获取 aio 信号处理程序的用户数据

    我尝试在 Mac OS X 下使用 aio 函数进行异步文件 IO 但在将某种形式的用户数据输入信号处理程序时遇到问题 这是设置操作的代码 class aio context public aio context int fildes bo
  • 从 Web 浏览器控件读取 Javascript 变量

    我正在尝试读取从表单上的 WebBrowser 控件加载和调用的 Javascript 变量的值 Example index html 引用名为 test js 的 javascript 在 test js 上 创建并填充了几个变量 然后i
  • JPG、DOC、PDF 等文件是否也编译成程序集?

    Q1 Does aspnet compiler exe将网站目录中包含的所有文件 甚至 JPG DOC 和 PDF 类型 编译成程序集 如果将图像添加到Web项目中的文件列表中 从而将它们添加到项目文件中 这些图像也会被VS编译成程序集吗
  • 在硬件不足的情况下进行编码

    我目前正在使用 C 中的 SIMD 指令进行编码 并尝试使用 IDE 在实时编码时显示错误 拼写错误等 问题是 我使用的是 AVX512 指令 我的硬件不支持这些指令 只有我用于编译的服务器支持 有没有一种方法可以在 IDE 中进行错误检查
  • ElementReference 对 Blazor 中条件创建的元素的引用

    我正在尝试将焦点设置为有条件呈现的输入控件 我正在设置ElementReference但它的 id 和 context 都是空的
  • std::function 中参数的自动动态转换

    我们有多态类 A 和 B 例如 struct A virtual A struct B final public A void f std cout lt lt f lt lt std endl 我想分配一个变量std function
  • 底层连接已关闭:接收时发生意外错误

    我来这里是因为我在通过 ftp 协议下载一些文件时遇到问题 这很奇怪 因为它偶尔会发生 甚至对于同一个文件也是如此 只是一个精确度 我正在下载非常大的文件 从 500 Mo 到 30Go 以下是我的函数返回的异常类型 抱歉 这是法语 Sys
  • 检查SQL Server数据库表中是否存在表或列

    在 SQL Server 数据库中创建列或表之前 我想检查所需的表和 或列是否存在 我已经四处搜寻 到目前为止发现了两种方法 我不想使用存储过程 通过使用SqlCommand ExecuteScalar 方法并捕获异常来确定表 列是否存在
  • C++ boost asio超时用于阻止连接

    我有一个 C boost 客户端 它执行阻塞连接并在收到响应后处理消息 我面临一个奇怪的问题 tcp resolver query query tcp v6 this gt host port tcp resolver query v4 m
  • EF5、SQL Server、经度和纬度

    我发现在 SQL Server 中存储纬度和经度的最佳类型是十进制 9 6 参考文献 1 在 SQL 数据库中存储纬度和经度数据时应使用什么数据类型 https stackoverflow com questions 1196415 wha
  • 使用 MVVM 在 WPF 中进行 COMBOBOX 过滤

    我正在使用 WPF mvvm 方法开发一个应用程序 我有一个要求 必须在组合框中显示项目列表以供选择 基于一些标志 我需要从组合框中过滤掉一些项目以供选择 我尝试使用两种不同的项目源 一个具有完整列表 另一个具有过滤列表 并基于我想要更改项
  • C++ 中的无符号双精度?

    为什么 C 不支持无符号双精度语法 因为典型的浮点格式不支持无符号数 例如 参见此 IEEE 754 格式列表 http en wikipedia org wiki IEEE 754 2008 Formats 添加通用硬件不支持的数字格式只
  • 编译Linux内核模块时出现错误:“CONFIG_X86_X32已启用,但没有binutils支持”和不需要的“n”字符

    我想得到Rasta Ring0 调试器 http rr0d droids corp org 在我的 x86 64 Linux 中编译的 0 3 版本 它是一个 Linux 内核模块 我已将 32 位内联汇编替换为 64 位汇编 如我的问题中
  • 用 C# 解析和查询 SOAP

    我正在尝试解析一个大量命名空间的 SOAP 消息 源也可以在here http tinyurl com n3av6k
  • ASP.NET 中的 ThreadStaticAttribute

    我有一个需要存储的组件static每个线程的值 它是一个通用组件 可以在许多场景中使用 而不仅仅是在 ASP NET 中 我想用 ThreadStatic 属性来实现我的目标 假设它在 ASP NET 场景中也能正常工作 因为我假设每个请求

随机推荐

  • Swift 安全地解包可选字符串和整数

    当我准备为第二个视图触发我的 segue 时 我还会发送一些如下值 if let aTime ads indexPath row unix t int toView time aTime if let aTitle ads indexPat
  • apache POI - 获取生成的excel文件的大小

    我在用着阿帕奇兴趣点 http poi apache org 用于在我的 spring mvc 应用程序中生成 excel 文件 这是我的弹簧动作 RequestMapping value excel method RequestMetho
  • 是否有任何允许合并 docx 文件的 java 库(也许是 poi?)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要编写一个可以合并docx文件的java应用程序 有什么建议么 对于 POI 我的解决方案是 public static void m
  • MVC 4 Razor 中的多个单选按钮组

    I need to have multiple radio button groups in my form like this 我知道这只是通过指定相同的 name 每个组的 html 属性 HOWEVER在使用 html 帮助器时 MV
  • JPA根据请求参数更改实体表名称

    我们的数据库目前有 2 种模式 一种用于生产 一种用于测试 相同的表但不同的数据 对于服务器端 我们使用 RoutingDatasource 来管理数据 每个请求都有一个参数来知道要访问哪个数据库 例如 prod 或 test 然后该参数存
  • 如何根据 Firestore 中的位置获取数据? [复制]

    这个问题已经存在了 我想根据 Firestore 中的用户位置获取商店 火库结构 shopCollection shopDoc1 city city address xyz lat 35 long 25 shopDoc2 我想检索距离用户较
  • 将原始类型对象列表作为子报表的数据源传递

    我需要传递给我的子报表数据源在主报告的帮助下List
  • Android 如何在 mediaPlayer 中仅播放歌曲 30 秒

    我正在 Android 上工作 我正在创建一个音频歌曲播放器 我只想播放一首歌 30 秒 之后 必须关闭播放器 如果我按下 它应该重新开始START再次按钮 这是创建媒体播放器的代码 MediaPlayer mediaPlayer new
  • 未找到 JavaFX 包

    我正在尝试使用组合的 Swing 和 JavaFX 组件创建一个项目 但我的 IDE 找不到 JavaFX 包 尝试使用 Netbeans 和 Eclipse import javafx embed swing JFXPanel says
  • 尝试完成输入事件,但输入事件接收器已被释放

    我正在尝试我在网上看到的教程 该应用程序从服务器获取并显示 JSONfeed 这部分工作正常 我试图在自定义列表视图中显示此提要 但是当我尝试这样做时 我得到 尝试完成输入 事件 但输入事件接收器已被处理 logcat 中的错误 并且应用程
  • 生成和执行之间有什么区别?

    我正在学习编写 TCL 期望 脚本 我注意到一些示例显示了如何使用 spawn 而其他示例则显示了命令 exec 我尝试谷歌搜索 但找不到有什么区别 假设我在一个很长的期望脚本中间调用 exec 我会期望发生什么 spawn is an e
  • 数组和线程安全访问

    如果我有一个可以 将在任何给定时间点被多个线程访问的数组 到底是什么导致它是非线程安全的 以及确保该数组在大多数情况下是线程安全的步骤是什么情况 我在互联网上进行了广泛的查找 发现几乎没有关于这个主题的信息 一切似乎都是特定的场景 例如 这
  • 使用 Entity FrameworkWork 保存更改/更新数据集中的现有对象,而不必单独设置每个属性

    我可以做类似下面的事情 这不起作用 而不必显式设置对象的每个属性吗 Product 是默认模型绑定程序从表单提交创建的对象 ProductInDb 是我希望覆盖 更新的上下文 数据库中的对象 两者的 ProductID 主键相同 var P
  • Ubuntu:无法纠正问题,您持有损坏的软件包

    尝试安装此程序时 我收到 无法纠正问题 您持有损坏的软件包 错误消息 阿帕奇版本 服务器版本 Apache 2 4 2 Ubuntu 服务器建成 2012 年 6 月 27 日 07 23 35 aptitude install libap
  • while(true) 与 setInterval(function(),0) [重复]

    这个问题在这里已经有答案了 设置间隔 重复调用函数或执行代码片段 每次调用该函数之间有固定的时间延迟 while 创建一个循环 只要测试条件的计算结果为 true 该循环就会执行指定的语句 之前评估过条件 执行该语句 如果我使用while
  • 公共属性的默认值

    我在某个班级有一个公共财产 我想要这个属性的默认值 1 而不需要像 MyField这样的私有变量 因为这个类中的属性太多 我不会一一添加它们 public int MyProperty get set 我认为 DefaultValue At
  • 在unittest中覆盖python函数局部变量

    我在 python 2 7 中有一个方法可以执行 foo 操作 如果 foo 不起作用 则在 5 分钟后放弃 def keep trying self timeout 300 empirically derived appropriate
  • GoogleFit 示例不起作用

    我正在尝试使用 BasicHistory Sample 来存储数据 然后读取它 但在我的情况下 代码卡在插入调用中 await 调用不会返回我尝试使用异步方式的任何内容 这里是代码 com google android gms common
  • 在哪里可以找到 Microsoft SQL Server 2008 的 Northwind 数据库?

    我正在尝试查找并创建 导入 Northwind 数据库来练习我的 Linq fu 我一生都找不到它 搜索只是将我转到此页面 这反过来又告诉我在不存在的官方页面上找到它 http msdn microsoft com en us librar
  • 数据绑定在表单加载之前不起作用 - 组合框项仅在表单加载后初始化

    我在 winform 上有两个组合框 一个包含列表 MyList 中的所有值 另一个我想拥有第一个选定索引中的所有值 但我认为将项目加载到组合框中时存在问题 public partial class Form1 Form public Fo