主要代码如下.另一个文件声明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#组合框仅设置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)