标题:求助: 获取textBox中指定位置一个字符。。。
只看楼主
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
结帖率:97.22%
已结贴  问题点数:20 回复次数:9 
求助: 获取textBox中指定位置一个字符。。。
求助: 获取textBox中指定位置一个字符。。。

没有办法了,textBox无法限制光标始终在字符串最后。
只能通过判断,光标位置和光标处字符来判断是否可以输入了。。。。

获取textBox中指定位置一个字符, 不知道textBox控件有没有现成的函数可以使用。

如果没有现成的函数,自己如何写才能最简洁。。。
搜索更多相关主题的帖子: 字符 指定 textBox 位置 获取 
2022-12-12 23:55
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
定位字符 -- 选择字符 -- 读取字符,过程有点复杂。
当字符串看待不可以吗,何必把问题复杂化。
2022-12-13 08:09
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:7 
C#代码,不管文本框光标在何处,始终输入到末尾。
程序代码:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    textBox1.Text = textBox1.Text + e.KeyChar;
    e.KeyChar = (char)0;
}
2022-12-13 08:53
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 3楼 apull
也是一个思路。。。


E0135    类 "System::String" 没有成员 "charAt"   

2022-12-13 12:54
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 3楼 apull
程序代码:
private: wchar_t rechar(String^Str, int _pos)
{
        const wchar_t* pchar = (const wchar_t*)(System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(Str)).ToPointer();
        wchar_t retuchar = pchar[_pos];

        return retuchar;
}


这样可以吗???
有什么错误吗。
函数退去时 pchar 指针会自动释放内存吗。
2022-12-13 13:28
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 3楼 apull
始终输入到末尾,可以这样。
程序代码:
private: System::Void textBox1_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e)
{
    textBox1->Select(textBox1->Text->Length, 0);

    ......................
    ......................    
}


输入前,把光标移到最后。。。。
这样,移动了的光标又被移回去了,就没有“插入”输入了。。。。。

[此贴子已经被作者于2022-12-13 13:39编辑过]

2022-12-13 13:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:6 
以下是引用追梦人zmrghy在2022-12-13 13:36:39的发言:

输入前,把光标移到最后。。。。
这样,移动了的光标又被移回去了,就没有“插入”输入了。。。。。

事出反常,必有另类。
2022-12-13 18:38
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 2楼 吹水佬
定位字符 -- 选择字符 -- 读取字符,过程有点复杂。
当字符串看待不可以吗,何必把问题复杂化。

一点也不复杂。。。
C#
中有  this.textBox1.Text.charAt(0, int _pos) 现成的函数

C++/CLR中没找现在函数,自己写一个也很简单

private: wchar_t rechar(String^Str, int _pos)
{
    pin_ptr<const wchar_t> wch = PtrToStringChars(Str);
    return wch[_pos];
}
2022-12-14 13:14
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用追梦人zmrghy在2022-12-14 13:14:09的发言:

定位字符 -- 选择字符 -- 读取字符,过程有点复杂。
当字符串看待不可以吗,何必把问题复杂化。

一点也不复杂。。。
C#
中有  this.textBox1.Text.charAt(0, int _pos) 现成的函数

C++/CLR中没找现在函数,自己写一个也很简单

private: wchar_t rechar(String^Str, int _pos)
{
    pin_ptr<const wchar_t> wch = PtrToStringChars(Str);
    return wch[_pos];
}

不就是用字符串方法来处理吗,当然是有大把现成的货用。
textbox本来就是一个文本控件,处理的就是字符串数据。用字符串方法来处理,肯定就不会出现另类。
2022-12-14 15:17
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
以下是引用吹水佬在2022-12-13 08:09:22的发言:

定位字符 -- 选择字符 -- 读取字符,过程有点复杂。
当字符串看待不可以吗,何必把问题复杂化。




事物本来很简单,人心让事物变复杂
2022-12-14 16:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510939-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025493 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved