C#TextBox只读表现为禁用

时间:2012-01-26 17:42:42

标签: c# textbox

我的表单上有4个TextBox控件 - 所有4个都具有相同的属性和相同的事件处理程序。第四个控件上只有不同的事件处理程序是TextChanged。我有一个问题 - 当我将所有这些文本框设置为ReadOnly时,所有4个都变为只读,但其中3个具有正常的白色背景,而第4个具有灰色背景(如禁用它们时)。我没有其他可能导致此错误的代码 - 任何想法为什么会发生这种情况或者之前有人经历过? 这是一个文本框的代码

this.tbPercentage.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.tbPercentage.Location = new System.Drawing.Point(99, 151);
this.tbPercentage.MaxLength = 3;
this.tbPercentage.Name = "tbPercentage";
this.tbPercentage.Size = new System.Drawing.Size(39, 22);
this.tbPercentage.TabIndex = 1;
this.tbPercentage.TextChanged += new System.EventHandler(this.tbPercentage_TextChanged);
this.tbPercentage.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MyTextbox_KeyDown);
this.tbPercentage.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.MyTextbox_KeyPress);

4个文本框之间的区别仅在于第4个文本框具有不同的TextChanged事件处理程序。如果我把它设置为与其他3个事件处理程序相同,当设置为只读时它仍然会变灰。我只是将它们中的所有4个设置为只读:

tbPercentage.ReadOnly = true;

没有其他代码可能与之发生冲突。

2 个答案:

答案 0 :(得分:1)

我将在黑暗中拍摄并猜测你正在使用winforms。

此外,我还要再次猜测,您更改了保持白色的文本框上的背景颜色,并且没有在只读模式下灰色的文本框上更改背景颜色。

答案 1 :(得分:1)

通过删除文本框,使其具有与旧文本框相同的属性和相同的事件处理程序,使其成为可能。 可能有设计器生成的代码没有正确生成,导致1个用户控件有一个错误。