Сочетание клавиш “Right Click” для Visual Studio?

Нет единственного хорошего способа решения этой проблемы, в основном это зависит от того, что вы будете делать с этими ключевыми входами.

Например, если он предназначен для управления постоянно обновляемой анимацией, то простые семафоры в словаре с {left: bool, right: bool, up: bool, down: bool} устанавливаются на true в keydown и на false в ] keyup , и этого достаточно для проверки каждого кадра.

const directions = {
  up: false,
  right: false,
  down: false,
  left: false
};
onkeydown = e => {
  const key = e.key.replace('Arrow', '').toLowerCase();
  if(key in directions) {
    e.preventDefault();
    directions[key] = true;
  }
};
onkeyup = e => {
  const key = e.key.replace('Arrow', '').toLowerCase();
  if(key in directions) {
    e.preventDefault();
    directions[key] = false;
  }
};
const w = canvas.width = innerWidth;
const h = canvas.height = innerHeight;
const ctx = canvas.getContext('2d');
const character = {
  x: w/2,
  y: h/2,
  update: function() {
    const speed = 2;
    // this is where we will check our keyboard's status
    // we do it every frame
    let dir_x = 0,
      dir_y = 0;
    dir_x += directions.left ? -1 : 0;
    dir_x += directions.right ? 1 : 0;
    dir_y += directions.up ? -1 : 0;
    dir_y += directions.down ? 1 : 0;
    this.x += dir_x * speed;
    this.y += dir_y * speed;
  },
  draw: function() {
    ctx.fillRect(this.x - 20, this.y-20, 40, 40);
  }
};

function anim() {
  character.update();
  ctx.clearRect(0,0,w, h);
  character.draw();
  requestAnimationFrame(anim);
}
anim();
:root,body{margin:0px}
<canvas id="canvas"></canvas>

Однако, если вы не держите непрерывный цикл анимации и вам действительно нужно это событие для запуска сначала, затем в обработчике клавиш вам может понадобиться добавить логику

...
if(key in directions) {
  e.preventDefault();
  const changed = directions[key] !== true;
  directions[key] = true;
  if(changed) {
    triggerChange(key);
  }
}

, где triggerChange(key) будет функцией, готовой для запуска вашего сольного действия.

const directions = {
  up: false,
  right: false,
  down: false,
  left: false
};

function triggerChange(dir) {
  character.update();
}

onkeydown = e => {
  const key = e.key.replace('Arrow', '').toLowerCase();
  if (key in directions) {
    e.preventDefault();
    const changed = directions[key] !== true;
    directions[key] = true;
    if (changed) {
      triggerChange(key);
    }
  }
};
onkeyup = e => {
  const key = e.key.replace('Arrow', '').toLowerCase();
  if (key in directions) {
    e.preventDefault();
    directions[key] = false;
  }
};

const w = canvas.width = innerWidth;
const h = canvas.height = innerHeight;
const ctx = canvas.getContext('2d');
const character = {
  x: w / 2,
  y: h / 2,
  update: function() {
    const speed = 5;
    // this is where we will check our keyboard's status
    // we do it every frame
    let dir_x = 0,
      dir_y = 0;
    dir_x += directions.left ? -1 : 0;
    dir_x += directions.right ? 1 : 0;
    dir_y += directions.up ? -1 : 0;
    dir_y += directions.down ? 1 : 0;
    this.x += dir_x * speed;
    this.y += dir_y * speed;
  },
  draw: function() {
    ctx.fillRect(this.x - 20, this.y - 20, 40, 40);
  }
};

function anim() {
  // it is now keydown that is responsible for character.update()
  ctx.clearRect(0, 0, w, h);
  character.draw();
  requestAnimationFrame(anim);
}
anim();
:root,body{margin:0}
<canvas id="canvas"></canvas>

22
задан Vadim Kotov 15 August 2017 в 08:48
поделиться

4 ответа

Взятый от lytebyte, у Вас есть две опции:

  • Сдвиг + F10
  • , Что сумасшедший ключ на нижней правой части современной клавиатуры Windows, Клавиша меню
49
ответ дан 29 November 2019 в 03:53
поделиться

Зависит от того, где/почему Вы щелкаете правой кнопкой.

ключ контекстного меню справа от клавиатуры в наше время, обычно между ключом Windows и Клавишей CTRL справа от Вашей клавиши "Пробел". Это откроет контекстное меню везде, где текущий фокус (обычно в текстовом редакторе).

при использовании правой кнопки мыши только для открытия инструментов рефакторинга, можно использовать Ctrl +. (период управления) для сования открывают "smart tag" на любом идентификаторе. Это доберется, Вы "генерируете пункт меню" тупика метода и т.п..

5
ответ дан 29 November 2019 в 03:53
поделиться

Ваша клавиатура имеет дополнительные ключи 'Windows', т.е. логотип Windows (Запустите ключ), и тот на правой стороне клавиши "Пробел", которая похожа на меню? Вызовите ту кнопку, на правой стороне 'Ключ контекстного меню'.

Посмотрите ключ между правым ключом 'Windows' стороны и ключом 'Ctrl'? Windows Keyboard layout

, Если Вашей клавиатуре меньше чем 10 лет, у Вас должны быть эти ключи, если у Вас нет ноутбука IBM или Mac.!

2
ответ дан 29 November 2019 в 03:53
поделиться

Принятие Вас просто хочет клавишу, которую можно нажать для щелчка правой кнопкой, most\many клавиатуры имеют ключ между высоким звуком и ctrl, который щелкает правой кнопкой.

1
ответ дан 29 November 2019 в 03:53
поделиться