Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文本框。选择(0,0)无效_C#_Visual Studio 2012_Textbox_Multiline_Cursor Position - Fatal编程技术网

C# 文本框。选择(0,0)无效

C# 文本框。选择(0,0)无效,c#,visual-studio-2012,textbox,multiline,cursor-position,C#,Visual Studio 2012,Textbox,Multiline,Cursor Position,我开发了一个用于聊天的windows应用程序。我使用多行文本框键入聊天信息。键入消息后,用户必须按Enter键或单击send按钮才能将消息发送到另一端。这两个操作都在调用btnSend\u Click()。这是密码 private void btnSend_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtChat.Text.Trim())) {

我开发了一个用于聊天的windows应用程序。我使用多行文本框键入聊天信息。键入消息后,用户必须按Enter键或单击send按钮才能将消息发送到另一端。这两个操作都在调用btnSend\u Click()。这是密码

private void btnSend_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtChat.Text.Trim()))
            {
                CreateNewMessage(txtChat.Text.Trim());
                txtChat.Clear();
                txtChat.Select(0, 0);
            }
        }
但是txtChat.Select(0,0)不会将光标移到文本框的最开头。按Enter键/或单击send按钮后,光标始终位于第二行的起始位置。为什么这个代码不起作用?请给我解释一下。请给我一个解决这个问题的方法


还有其他方法可以将光标定位在多行文本框的开头吗?

以下是解决此问题的方法。请更换

txtChat.Clear();
txtChat.Select(0, 0);


我不明白这个问题。代码在设置选择之前要做的事情是清除所有文本。如果以后控件中仍有文本,则必须在设置选择后添加文本;但是添加文本可以修改选择。如果要在控件中添加/设置文本后将选择保留在开头,则需要在添加/设置文本后调用
Select()
方法,而不是在之前。请提供清楚显示您要求的内容。您是指焦点吗???@PeterDuniho,我想将光标移到文本框的最开头。我认为txtChat.Select(0,0);我应该这样做。但我的情况并非如此。这是我的问题。谢谢你考虑我的问题。@PeterDuniho,我想把光标移到文本框的最开头。我认为txtChat.Select(0,0);我应该这样做。但我的情况并非如此。这是我的问题。谢谢你考虑我的问题。@KushanRandima请实施我的建议,它会解决问题的。用户单击
Send
按钮后,cusor将到达文本框的开头。我已经在我的应用程序中实现了这一点,然后只是建议你。我只是尝试了你的解决方案。对不起,它对我不起作用。即使我的应用程序是windows窗体应用程序,我还是使用addin express来开发它。此表格是ADX表格。有时,它可能以另一种方式工作。我是如何想出一个解决办法的。(通过添加SendKeys.Send(“{BACKSPACE}”);作为我当前代码下面的最后一行)哦,有人否决了你的答案。我为此感到抱歉。我感谢你为解决我的问题所做的努力。干杯@KushanRandima我很抱歉:(.我认为这是一个普通的windows窗体应用程序,所以想到了建议答案。实际上我没有足够的分数来评论这些建议,所以我不得不将其作为回答帖子。您没有使用visual studio作为开发IDE?尝试此建议时出现了什么错误?
txtChat.ResetText(); // it will reset the entire textbox once you click button.
txtChat.Focus(); // this will keep the focus back to text box and bring the cursor back to the very beginning of the textbox.