数据绑定控制不会失去焦点

时间:2011-07-27 13:18:10

标签: c# winforms data-binding databound databound-controls

我正在构建一个表单,其中每个控件都数据绑定到不同类的属性,并且我发现有一些控件在我尝试离开控件时根本不会失去焦点。例如,我有一个numericUpDown控件,它被数据绑定到一个单独的类上的属性,如果我单击numericUpDown,它将获得焦点,但是如果我在控件外单击,它将不会失去焦点。我无法访问表单上的其他控件,我无法退出表单。右上角的X按钮根本不执行任何操作,且numericUpDown仍然具有焦点。

当我尝试调试以查看到底发生了什么时,我看到每当我试图离开控件时,调用“Leave”事件,数据绑定值都会被更新,但是之后会立即更新“Enter”事件被调用。

这是我正在讨论的numericUpDown的数据绑定代码。 numericUpDown名为“Major_Tick_Number”,并且绑定到theDial.Representation中的属性MajorTicks:

Major_Tick_Number.DataBindings.Add("Value", theDial.Representation, "MajorTicks"); 

这是设计师代码:

this.Major_Tick_Number.Location = new System.Drawing.Point(195, 17);
this.Major_Tick_Number.Maximum = new decimal(new int[] {
1000,
0,
0,
0});
this.Major_Tick_Number.Name = "Major_Tick_Number";
this.Major_Tick_Number.Size = new System.Drawing.Size(46, 20);
this.Major_Tick_Number.TabIndex = 63;
this.Major_Tick_Number.Value = new decimal(new int[] {
10,
0,
0,
0});

同样,数据绑定在值正在更新的意义上工作得很好,但控件根本不会失去焦点。

如果我移除数据绑定器,控制器会正常获得并失去焦点。

我想注意的一些事情:我正在使用Visual Studio 2008并且正在使用C#进行编程。此外,我的表单有一个tabControl,我的所有其他控件都在tabControl上,不确定是否重要。另外,我想强调一些控件(可能25%)工作正常,有些控件有焦点问题,我无法看到任何控件工作的模式,哪些控件不起作用。

如果您需要更多信息,请与我们联系。 任何帮助,您可以提供的建议将不胜感激。

谢谢。

这是数据绑定的属性

public float MajorTicks { 
    get { return otherObject.getMajorTicks(); } 
    set { otherObject.setMajorTicks(value); } 
} 

和另一个对象(用托管c ++编写)

float getMajorTicks() {return majorTicks;}; 
void setMajorTicks(float val) {majorTicks = val;};

0 个答案:

没有答案
相关问题