C# 为什么赢了';在单击向下箭头之前,domainupdown控件是否更改该值?

C# 为什么赢了';在单击向下箭头之前,domainupdown控件是否更改该值?,c#,winforms,C#,Winforms,我正在添加一个DomainUpdown控件及其项列表,以编程方式显示。我也用工具箱做了同样的结果 下面是一些示例代码,演示了该行为: public Form1() { InitializeComponent(); GroupBox groupbox1 = new GroupBox(); this.Controls.Add(groupbox1); DomainUpDown dup = new DomainUpDown(); dup.Items.Add("one"); dup

我正在添加一个DomainUpdown控件及其项列表,以编程方式显示。我也用工具箱做了同样的结果

下面是一些示例代码,演示了该行为:

public Form1()
{
  InitializeComponent();
  GroupBox groupbox1 = new GroupBox();
  this.Controls.Add(groupbox1);
  DomainUpDown dup = new DomainUpDown();
  dup.Items.Add("one");
  dup.Items.Add("two");
  dup.Items.Add("three");
  dup.Wrap = true;
  dup.Text = "two";
  groupbox1.Controls.Add(dup);
}
当我运行程序并单击向上箭头时,什么也没有发生。让控件开始工作的唯一方法是单击向下箭头。一旦发生这种情况,控件就会按照广告的方式工作

想知道为什么会发生这种情况吗?

试着这样做:

//dup.Text = "two";
dup.SelectedIndex = 1;

通过设置索引而不是文本属性,上下按钮可以正确移动到列表中相应的索引。

这不是标准行为。你在DomainUpDown1_Change方法中做什么?我正在阅读控件的一些属性,但没有给它赋值。控件中的文本是对表的查找。我获取用户选择的值,将其用作表中的索引,并将查找到的值发送到服务器。我看到一个例子,他们在这个方法中分配文本的值。我应该这么做吗?如果没有它,它似乎可以工作——当然第一次除外。我无法重现这个问题。尝试发布复制问题的代码,这样用户就可以看到它是如何发生的。Lars,我相信我可能已经发现了问题,但由于我一直在做其他事情,所以没有时间测试它。我相信树面板有焦点,当我点击DUP时,它所做的就是将焦点从树面板移到另一个控制面板。我试着手动改变焦距,但没用。如果我仍然不能得到它,我会尝试创建一个较小的副本,展示同样的行为。高科技,我的想法不起作用,所以我已经玩了一些更多。以上代码的行为方式与我的程序相同,因此我认为这不是我的代码的问题。我启动了一个新的“解决方案”,并将代码粘贴到上面。试一试,如果你不介意的话,告诉我你是否看到同样的行为。谢谢,太好了!谢谢它!我花了两天时间试图找到答案。谢谢你抽出时间。