我的程序存在很大问题!
http://www.directupload.net/file/d/3564/9lsazq3e_png.htm
如果我点击richTextBox,我想用按钮上的数字填充它。
我现在怎么做---> (每个Button都有此点击事件)
private void digits_Click_2(object sender, EventArgs e)
{
if (sender is Control)
{
rtxtLast.Text += (sender as Control).Text;
rtxtLast.SelectionStart = rtxtLast.Text.Length;
rtxtLast.Focus();
}
}
我可以用数字填充richTextBox,但只能在文本末尾填充。
但我想在光标处插入文字
对于光标,我有左/右箭头(或通过触摸显示屏)
顺便说一句,我有一个完整的触控系统,所以我必须使用按钮(我没有键盘/鼠标)
它也与空格键(“Leertaste”)
的问题相同 private void button36_Click(object sender, EventArgs e)
{
rtxtLast.Text += " ";
rtxtLast.SelectionStart = rtxtLast.Text.Length;
rtxtLast.Focus();
}
这是我删除的方式(“Löschen”)
private void button11_Click(object sender, EventArgs e)
{
if (rtxtLast.SelectionStart > 0)
{
int index = rtxtLast.SelectionStart;
rtxtLast.Text = rtxtLast.Text.Remove(rtxtLast.SelectionStart - 1, 1);
rtxtLast.Select(index - 1, 1);
rtxtLast.Focus();
}
else if (rtxtLast.Text != string.Empty)
{
rtxtLast.Text = rtxtLast.Text.Remove(rtxtLast.Text.Length - 1);
}
}
这是左右的
private void left2_Click(object sender, EventArgs e)
{
if (rtxtLast.SelectionStart > 0)
{
int index = rtxtLast.SelectionStart;
rtxtLast.Select(index - 1, 1);
rtxtLast.Focus();
}
}
private void right2_Click(object sender, EventArgs e)
{
if (rtxtLast.SelectionStart > -1)
{
int index = rtxtLast.SelectionStart;
rtxtLast.Select(index + 1, 1);
rtxtLast.Focus();
}
}
左/右,删除正在运行 但我还没有找到数字的解决方案..
我知道代码是错误的,但我不知道如何做正确的
有没有人可以帮助我?
格尔茨 阿图尔
答案 0 :(得分:0)
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, Int32 wParam, Int32 lParam);
每次想要发送带有按钮的角色时,请单击
private void Button0_Click(object sender, EventArgs e)
{
richTextBox1.Focus();
SendMessage(richTextBox1.Handle, 0x100, 0x30, 0);
SendMessage(richTextBox1.Handle, 0x102, 0x30, 0);
}
0x30 是0
虚拟密钥。 0x100,0x102 是WM_KEYDOWN
和WM_CHAR
条消息。
您可以使用此方法发送所有键盘键。另一个例子是backspace key
:
private void buttonBackSpace_Click(object sender, EventArgs e)
{
richTextBox1.Focus();
SendMessage(richTextBox1.Handle, 0x100, 0x8, 0); //0x8 is the backspace virtual key
SendMessage(richTextBox1.Handle, 0x102, 0x8, 0);
}
有关虚拟键代码see here
的列表瓦尔特