首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使文本框中的文本向上移动

使文本框中的文本向上移动
EN

Stack Overflow用户
提问于 2012-11-23 22:10:13
回答 3查看 95关注 0票数 0

如果我有一个32行高的TextBox。我如何才能将TextBox中的当前文本向下“凹凸”1,然后在第一行添加新文本。

这就是我尝试过的方法它不起作用,而且显然不是一种干净/高效的做事方式

代码语言:javascript
复制
String[] chat = new String[32];

if (client.Controls[0].InvokeRequired)
{
    SetTextCallback d = new SetTextCallback(setText);
    client.Invoke(d, new object[] { text });
}
else
{
    chat[0] = chat[1].ToString();
    chat[1] = chat[2].ToString();
    chat[2] = chat[3].ToString();
    chat[3] = chat[4].ToString();
    chat[4] = chat[5].ToString();
    chat[5] = chat[6].ToString();
    chat[6] = chat[7].ToString();
    chat[7] = chat[8].ToString();
    chat[8] = chat[9].ToString();
    chat[9] = chat[10].ToString();
    chat[10] = chat[11].ToString();
    chat[11] = chat[12].ToString();
    chat[12] = chat[13].ToString();
    chat[13] = chat[14].ToString();
    chat[14] = chat[15].ToString();
    chat[15] = chat[16].ToString();
    chat[16] = chat[17].ToString();
    chat[17] = chat[18].ToString();
    chat[18] = chat[19].ToString();
    chat[19] = chat[20].ToString();
    chat[20] = chat[21].ToString();
    chat[21] = chat[22].ToString();
    chat[22] = chat[23].ToString();
    chat[23] = chat[24].ToString();
    chat[24] = chat[25].ToString();
    chat[25] = chat[26].ToString();
    chat[26] = chat[27].ToString();
    chat[27] = chat[28].ToString();
    chat[28] = chat[29].ToString();
    chat[29] = chat[30].ToString();
    chat[30] = chat[31].ToString();
    chat[31] = text + "\r\n";
    for (int i = 0; i < chat.Length; i++)
    {
        if (chat[i] != null)
        {
            client.Controls[0].Text += text + "\r\n";
        }
    }
}
EN

回答 3

Stack Overflow用户

发布于 2012-11-23 22:25:18

我对一个问题感到有点困惑。a)添加循环,即

代码语言:javascript
复制
for (int i= 0; i<31; i++)
   chat[i] = chat[i+1].ToString();
chat[31] = text + "\r\n";

b)如果您更改了变量,则需要更改textbox数据,除非它是绑定的

或者在第一行贴上你想要的新文本。至少我没有明白这一点。

票数 0
EN

Stack Overflow用户

发布于 2012-11-23 22:28:04

这看起来效率不是很高。您的应用程序的用途是什么?这是一个“聊天”应用程序吗?

在一个数组中保存32个字符串有什么原因吗?

为什么不简单地将新字符串附加到包含在文本框中的文本的顶部,

代码语言:javascript
复制
client.Controls[0].Text = [Some Text] + Environment.Newline + client.Controls[0].Text;
票数 0
EN

Stack Overflow用户

发布于 2012-11-24 02:16:26

这不完全是我想要的,但它是有效的。

代码语言:javascript
复制
        public void setText(string text)
        {
            if (ChatClient.ChatClient.client.Controls[0].InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(setText);
                client.Invoke(d, new object[] { text });
            }
            else
            {
                client.Controls[0].Text = null;

                for (int i = 0; i < chat.Length - 1; i++)
                {
                    chat[i] = chat[i + 1];
                }

                chat[30] = text;

                for (int i = 0; i < chat.Length; i++)
                {
                    client.Controls[0].Text += chat[i] + "\r\n";
                }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13530764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档