Trackbar百分比到richtextbox文本

时间:2016-09-22 01:01:16

标签: c# winforms

我有一个Trackbar,希望它将当前值添加到richtextbox Text而不替换整个文本行

richTextBox1.Rtf = richTextBox1.Rtf.Replace("aimbot_aimtime=85.000000", "aimbot_aimtime=" + trackbarpercent.Text + ".000000");

(我从我的标签中获取价值)

这就是我现在正在使用的东西,但只有当文字是“aimbot_aimtime = 85.000000”时才取代它

我希望它在“aimbot_aimtime = NEWVALUE”之后添加新值,但我无法让它工作atm

2 个答案:

答案 0 :(得分:0)

您必须知道更换它的值是什么,这就是为什么它仅在值为默认值85时才有效。

为了用新文本替换文本,您必须跟踪在替换时使用的某个地方的先前值。这意味着您的表单中的字段,某个类中的属性。让我们假设您在表单(myForm)上创建一个名为oldAimbot_aimtime的int字段。每次滑块更改时,将旧值放入此字段。现在您的代码变为:

var prompt = "aimbot_aimtime=";
var oldvalue = string.Format("{0}{1}", prompt, myForm.oldAimbot_aimtime);
var newvalue = string.Format("{0}{1}", prompt, {NEWVALUE}.Format("#.######");
richTextBox1.Rtf = richTextBox1.Rtf.Replace(oldvalue, newvalue);

此代码不在我的头顶,可能无法正常工作,但它应该替换值。在配置屏幕上使用richtextbox有什么价值?你能发布截图吗? 好的,我看到截图。除了道德之外(不确定是否存在合法的目标机器人)。您正在使用richtextbox,大概是因为它是最容易控制风格的控件...

使用richtextbox的地方可能更适合GridView,ListBox,甚至可能是树视图,您可以更好地控制每个元素。

如果要使用richtext,编写发出每个选项的代码,那么您可以获得要在rtf.Replace()命令中使用的确切值

希望这有帮助。

答案 1 :(得分:0)

@Marc里昂 我认为对我来说更好的方法是替换Line本身因为它总是Line 7 得到它的工作,感谢所有帮助过的人:)。

    void changeLine(RichTextBox RTB, int line, string text)
    {
        int s1 = RTB.GetFirstCharIndexFromLine(line);
        int s2 = line < RTB.Lines.Count() - 1 ?
                  RTB.GetFirstCharIndexFromLine(line + 1) - 1 :
                  RTB.Text.Length;
        RTB.Select(s1, s2 - s1);
        RTB.SelectedText = text;
    }

    private void trackbarpercent_Click(object sender, EventArgs e)
    {
        changeLine(richTextBox1, 7, "aimbot_aimtime=" + aimtimetrackbar.Value + ".000000");
    }