调试中的C#组合框仅设置
发布时间:2020-12-15 20:55:50 所属栏目:百科 来源:网络整理
导读:我一直在用C#(VS Express 2015)编写一个应用程序,并且有一个组合框,我想预先填充一个保存的值.我似乎无法让组合框获取我尝试将其设置为的值.我创建了一个新项目来演示此错误. 主要代码如下.另一个文件声明tableLayoutPanel. drawComboBox函数应该使用给定的
我一直在用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)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |