在Silverlight項目中,如何使左箭頭像一樣行事。(點),當用戶按下文本框中的左箭頭時,它將鍵入。並以同樣的方式如何使右箭頭如-(破折號)如何使箭頭鍵充當另一個鍵?
而我想用CTRL鍵在兩種模式之間切換:。和短劃線,常規的箭頭行爲,意思是當用戶按下Control時,拖曳箭頭將作爲。和破折號。當用戶按下控制鍵時,2個箭頭將按照常規箭頭操作。
在Silverlight項目中,如何使左箭頭像一樣行事。(點),當用戶按下文本框中的左箭頭時,它將鍵入。並以同樣的方式如何使右箭頭如-(破折號)如何使箭頭鍵充當另一個鍵?
而我想用CTRL鍵在兩種模式之間切換:。和短劃線,常規的箭頭行爲,意思是當用戶按下Control時,拖曳箭頭將作爲。和破折號。當用戶按下控制鍵時,2個箭頭將按照常規箭頭操作。
private void textBox1_KeyUp(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)
{
textBox1.SelectionStart = textBox1.Text.Length + 1;
insert = '.';
}
else
{
insert = '-';
}
int i = textBox.SelectionStart;
textBox1.Text = textBox1.Text.Insert(i, insert.ToString());
textBox1.Select(i + 1, 0);
}
}
}
如果是贏的形式或WPF,你只需要捕捉keypressed的事件並改變它的行爲,並將其設置爲「Handled」(在PreviewKeyDown之前和之後有一堆事件可用於完全控制每個按鍵會發生什麼
如果按下CTRL鍵,以及使用API可以檢查 在WPF使用KeyboardDevice物業,檢查:
if ((e.KeyboardDevice.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
增加:。 同時 - 檢查了這一點SO question
而這一次,以及:SO Question2
這是在Windows窗體或ASP.NET?什麼樣的控制? (或別的?) – 2010-04-11 09:01:52
我相信@ le.shep20引用了'Ctrl'鍵。在不知道使用哪個框架/庫的情況下回答這個問題確實是不可能的。我只是想將WPF添加到可能性列表中。 – stakx 2010-04-11 09:05:27
也許這不是關於應用程序內部,而是系統範圍內,使用C#執行實現。 @ le.shep20,你能否更新你的問題來澄清你的想法? – Abel 2010-04-11 09:30:42