C#文本框只读的行为类似于禁用
本文关键字:类似于 文本 只读 | 更新日期: 2023-09-27 18:21:36
我的表单上有4个TextBox控件,这4个控件都有相同的属性和事件处理程序。第4个控件上只有TextChanged是不同的事件处理程序。我对它们有一个问题——当我将所有这些文本框设置为只读时,所有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个文本框之间的唯一区别是4th有一个不同的TextChanged事件处理程序。若我把它和其他3个事件处理程序一样,当设置为只读时,它仍然会变灰。我只是使用将所有4个设置为只读
tbPercentage.ReadOnly = true;
没有其他代码可能与之冲突。
我将在黑暗中拍摄,并猜测您使用的是winforms。
此外,我还要做另一个猜测,你改变了保持白色的文本框的背景色,而没有改变只读模式下变灰的文本框。
只是通过删除文本框,创建一个与旧文本框具有相同属性和相同事件处理程序的新文本框来实现它。可能是设计器生成的代码没有正确生成,导致1个用户控件出现一个错误。