c# - tools - Las llaves se autocompletan en Visual Studio 2012
tools visual studio 2015 (4)
Acabo de migrar de vs10 a vs12 y parece que las llaves se rompen por completo junto con algunas otras características como la sangría en C # (?), Por ejemplo, escriba:
public static void myFunc() {
En Visual Studio 10 se agregaría automáticamente la llave de cierre para ello. ¿Hay alguna herramienta eléctrica o algo que pueda solucionar esto y dar el mismo comportamiento? el complemento de refuerzo requiere pulsar Intro después de la función para agregar las llaves de cierre.
También en herramientas-> opciones-> editor de texto-> c # -> formateo-> formatear automáticamente el bloque completado activado }
está activado de manera predeterminada.
Aquí está el código para crear corchetes automáticos completos para RichTextBox usando C #.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
namespace Auto_Complete_Brackets
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//declare isCurslyBracesKeyPressed variable as Boolean and assign false value
//to check { key is pressed or not
public static Boolean isCurslyBracesKeyPressed = false;
//richTextBox1 KeyPress events
// if key (,{,<,",'',[ is pressed then insert opposite key to richTextBox1 at Position SelectionStart+1
// add one line after inserting, e.Handled=true;
//finally set SelectionStart to specified position
private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
String s = e.KeyChar.ToString();
int sel = richTextBox1.SelectionStart;
if (checkBox1.Checked == true)
{
switch (s)
{
case "(": richTextBox1.Text = richTextBox1.Text.Insert(sel, "()");
e.Handled = true;
richTextBox1.SelectionStart = sel + 1;
break;
case "{":
String t = "{}";
richTextBox1.Text = richTextBox1.Text.Insert(sel, t);
e.Handled = true;
richTextBox1.SelectionStart = sel + t.Length - 1;
isCurslyBracesKeyPressed = true;
break;
case "[": richTextBox1.Text = richTextBox1.Text.Insert(sel, "[]");
e.Handled = true;
richTextBox1.SelectionStart = sel + 1;
break;
case "<": richTextBox1.Text = richTextBox1.Text.Insert(sel, "<>");
e.Handled = true;
richTextBox1.SelectionStart = sel + 1;
break;
case "/"": richTextBox1.Text = richTextBox1.Text.Insert(sel, "/"/"");
e.Handled = true;
richTextBox1.SelectionStart = sel + 1;
break;
case "''": richTextBox1.Text = richTextBox1.Text.Insert(sel, "''''");
e.Handled = true;
richTextBox1.SelectionStart = sel + 1;
break;
}
}
}
// richTextBox1 Key Down event
/*
* when key { is pressed and {} is inserted in richTextBox
* and isCurslyBracesKeyPressed is true then insert some blank text to richTextBox1
* when Enter key is down
* it will look like this when Enter key is down
{
|
}
* */
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
int sel = richTextBox1.SelectionStart;
if (e.KeyCode == Keys.Enter)
{
if(isCurslyBracesKeyPressed==true)
{
richTextBox1.Text = richTextBox1.Text.Insert(sel, "/n /n");
e.Handled = true;
richTextBox1.SelectionStart = sel + " ".Length;
isCurslyBracesKeyPressed = false;
}
}
}
}
}
Si alguien tiene este problema con VS 2013, hay una configuración para esto ahora. Simplemente reinicié mi configuración VS y comenzó a completar mis llaves de nuevo. Para mí, no se trata de herramientas de potencia de productividad. Puedes activarlo / desactivarlo aquí:
Visual Studio 2010 no lo hace de forma predeterminada (al menos no en mi caso). ¿Estás seguro de que no estás usando una extensión como Productivity Power Tools?
Éste es compatible con VS2012: http://visualstudiogallery.msdn.microsoft.com/0e33cb22-d4ac-4f5a-902f-aff5177cc94d
Las herramientas de potencia de productividad para 2012 están disponibles ahora, que cuenta con autocorrección completa, OP casi definitivamente estaba usando la versión 2010.
Herramientas de potencia de productividad para 2013
Si no lo ha usado antes, puede activar / desactivar casi todas las características que agrega en Opciones> herramientas de productividad.