C# 将简单代码从Winform转换为silverlight应用程序时出现问题
我有这个窗口窗体应用程序的代码,我一直试图将其转换为Silverlight应用程序,但它不起作用!。有一个文本框,我将KeyDown事件处理程序附加到它。当用户按下箭头键(左或右),而焦点在文本框上时,它将写入。或-。当它是窗口形式时,我使用了e.KeyCode和Key.Right,它工作得很好,但当它是silverlight时,我使用了e.Key和Key.Right,程序工作得不好,因为箭头执行两个函数的移动和写入。我如何在Silverlight中解决这个问题? (我的英语不好) 代码(窗口形式): (和Silverlight): 我不明白,使用Keycode/Keys和Key/Key之间是否有巨大的不同效果?还是因为其他原因?您必须设置C# 将简单代码从Winform转换为silverlight应用程序时出现问题,c#,winforms,silverlight,C#,Winforms,Silverlight,我有这个窗口窗体应用程序的代码,我一直试图将其转换为Silverlight应用程序,但它不起作用!。有一个文本框,我将KeyDown事件处理程序附加到它。当用户按下箭头键(左或右),而焦点在文本框上时,它将写入。或-。当它是窗口形式时,我使用了e.KeyCode和Key.Right,它工作得很好,但当它是silverlight时,我使用了e.Key和Key.Right,程序工作得不好,因为箭头执行两个函数的移动和写入。我如何在Silverlight中解决这个问题? (我的英语不好) 代码(窗口形
e.Handled = true;
因此,事件不会被进一步使用。对于TextBox中的几个键,KeyDown事件将不成比例,因为TextBox在内部使用这些键,并在它们进入自定义用户代码之前将它们标记为e.已处理 以下是进一步解释问题的引文: 另一个例子是文本框。一些钥匙 例如,箭头键不可用 按文本框考虑文本,并且 而是认为特定于 控件UI行为和文本框 将这些事件案例标记为已处理 如果我是你,我只会使用KeyUp事件,因为你的自定义代码在该事件中工作正常 真诚地,
--贾斯汀·安吉尔是的,谢谢你提供的信息。但使用keyUp也无法解决此问题,因为使用左/右箭头时光标仍会移动。我想知道有没有办法禁用箭头键的功能?
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (sender is TextBox)
{
TextBox textBox = (TextBox)sender;
if (e.Key == Key.Left || e.Key == Key.Right)
{
e.Handled = true;
char insert;
if (e.Key == Key.Left)
{ insert = '.'; }
else
{ insert = '-'; }
int i = textBox.SelectionStart;
textBox.Text = textBox.Text.Insert(i, insert.ToString());
textBox.Select(i + 1, 0);
}
}
}
e.Handled = true;