调试中的C#组合框仅设置

调试中的C#组合框仅设置,第1张

概述我一直在用C#(VS Express 2015)编写一个应用程序,并且有一个组合框,我想预先填充一个保存的值.我似乎无法让组合框获取我尝试将其设置为的值.我创建了一个新项目来演示此错误. 主要代码如下.另一个文件声明tableLayoutPanel. drawComboBox函数应该使用给定的选定选项和行向面板添加一个组合框. public Form1() { Initia 我一直在用C#(VS Express 2015)编写一个应用程序,并且有一个组合框,我想预先填充一个保存的值.我似乎无法让组合框获取我尝试将其设置为的值.我创建了一个新项目来演示此错误.

主要代码如下.另一个文件声明tableLayoutPanel. drawComboBox函数应该使用给定的选定选项和行向面板添加一个组合框.

public Form1()    {        InitializeComponent();        drawComboBox(Options.Blue,0);    }    public enum Options    {        Unset,Blue,Yellow,Red    };    private voID drawComboBox(Options SelectedOption,int row)    {        System.windows.Forms.ComboBox colorCombo = new System.windows.Forms.ComboBox();        colorCombo.DataSource = Enum.GetValues(typeof(Options));        colorCombo.name = "colorCombo";        this.tableLayoutPanel1.Controls.Add(colorCombo,row);        colorCombo.SelectedItem = Options.Yellow;    }

奇怪的是,如果我在正常调试模式下运行程序或单步执行它,组合框将始终显示“Unset”,但如果我在设置颜色之前中断并在Locals调试窗口中打开colorCombo项目然后单步执行它,它将被正确设置.考虑到调试器中的问题解决了这个问题,这使得弄清楚发生了什么不仅仅是一种痛苦.

我非常感谢任何想法,谢谢.

解决方法 我不确定为什么会这样,但我可以告诉你如何解决它 –

请更改绘图功能中的步骤顺序,如此&它会工作正常.

private voID drawComboBox(Options SelectedOption,int row)    {        System.windows.Forms.ComboBox colorCombo = new System.windows.Forms.ComboBox();        colorCombo.name = "colorCombo";        this.tableLayoutPanel1.Controls.Add(colorCombo,row);        colorCombo.DataSource = Enum.GetValues(typeof(Options));        colorCombo.SelectedItem = Options.Yellow;    }

它似乎取决于这两行代码的顺序

这种组合给出了“未设置”

colorCombo.DataSource = Enum.GetValues(typeof(Options));        this.tableLayoutPanel1.Controls.Add(colorCombo,row);

如果你扭转它,它的工作原理

this.tableLayoutPanel1.Controls.Add(colorCombo,row);        colorCombo.DataSource = Enum.GetValues(typeof(Options));
总结

以上是内存溢出为你收集整理的调试中的C#组合框仅设置全部内容,希望文章能够帮你解决调试中的C#组合框仅设置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1226543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存