代码改变世界

[VS2005]Bug or Design?

  Colin Han  阅读(1278)  评论(4编辑  收藏  举报

在VS2005以前的版本,如果我们调用下面的逻辑

// Form中包含一个ComboBox Control。
public void Form_Load(object sender, EventArgs e)
{
  
this.comboBox1.DropDownStyle = DropDownStyle.DropDown; // 注意不是DropDownList.
  this.comboBox1.Items.Add("Test1");
  
this.comboBox1.Items.Add("Test2");
  
this.comboBox1.Items.Add("Test3");
  this.comboBox1.Items.Add("Test4");
  
this.comboBox1.SelectedIndex = 0;
}


public void button1_Click(object sender, EventArgs e)
{
  
this.comboBox1.Text = "Test"//该项不存在于Items中
  Debug.WriteLine(this.comboBox1.SelectedIndex.ToString());
}

返回的结果是-1.因为没有任何一项被选中。

但是,如果我们在VS2005中运行上面的代码,结果却是0

这是VS2005的Bug还是它的Design。

Bug:
    与以前的版本不兼容;
    数据会丢失;(我没有具体试验,在某些情况下,似乎设进取的Text会丢掉)

Design:
    将SelectedIndex和当前显示的Text分开。(似乎有些牵强,但好像也有些合理性)

博客园里微软的人很多,有没有能够出面澄清一下。大家也许也会有一些自己的看法。
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示