有没有人知道是否可以根据剩下的字符空间为场地的背景着色? 你从一个空场开始,整个背景,例如浅蓝色。现在当你输入字符时,浅蓝色部分会减少,所以当背景中没有浅蓝色时,你知道你已经达到了最大字符数。
我使用C#作为我的编程语言。 我希望并非常感谢任何帮助。 在此先感谢,Erik
答案 0 :(得分:0)
这样,你在WPF中更改了背景),在winForm中是backColor):
textBox1.Background = Brushes.Blue;
你还需要在xaml中设置MaxLenght属性(我推测你正在使用wpf)。
对于maxLenght剩余部分的背景,我认为你必须自定义文本框的类,并在这里做一些原始工作。
答案 1 :(得分:0)
我更喜欢通过javascript来做到这一点,以避免回发。 此示例在用户书写时淡化文本框的背景颜色,并在删除任何字符时使颜色变暗。
标记:
<input type="text" id="txt1" onkeyup="setBoxColor(this,20);" maxlength="10"/>
使用Javascript:
//Define startcolor for textbox.
var startColor = "rgb(0, 148, 255)";
$(function () {
$("#txt1").css("background-color", startColor);
});
function setBoxColor(ctrl, light)
{
if (ctrl.value.length == 0)
{
$("#" + ctrl.id).css("background-color", startColor);
return;
}
var color = startColor;
color = color.replace(/[^0-9,]+/g, "");
var red = color.split(",")[0];
var gre = color.split(",")[1];
var blu = color.split(",")[2];
$("#" + ctrl.id).css("background-color", Lighthen(red, gre, blu, light * ctrl.value.length));
}
function Lighthen(red, green, blue, light) {
var max = ([red, green, blue].sort(function (l, r) { return r - l }))[0];
var multiplier = max;
multiplier = (multiplier / 255) + light;
if (multiplier < 1.5) multiplier = 1.9;
if ((max * multiplier) > 255) {
multiplier = (multiplier / 230) + 1;
}
var r = Math.round(red * multiplier);
var g = Math.round(green * multiplier);
var b = Math.round(blue * multiplier);
if (r > 255) r = 255;
if (g > 255) g = 255;
if (b > 255) b = 255;
return "rgb(" + r + "," + g + "," + b + ")";
}