Amazon-Enabled Movie Collection
Black Jack Card Game
Skype Wrapper for .NET
Descargar Samples and Starter Kits
Pueden ver los demas recursos en MSDN
Amazon-Enabled Movie Collection
Black Jack Card Game
Skype Wrapper for .NET
Descargar Samples and Starter Kits
Pueden ver los demas recursos en MSDN
En C# 1.0, se creaba una instancia de un delegado inicializándolo explícitamente con un método que se definía en otra parte del código. En C# 2.0, se introdujo el concepto de métodos anónimos como un medio de escribir bloques de instrucciones insertados sin nombre que se pueden ejecutar en una invocación de delegado. C# 3.0 introduce las expresiones lambda, que son similares en concepto a los métodos anónimos, pero más expresivas y concisas. Estas dos características se conocen colectivamente como funciones anónimas. En general, las aplicaciones destinadas a la versión 3.5 y posteriores de .NET Framework deberían utilizar expresiones lambda.
El ejemplo siguiente muestra cómo ha evolucionado la creación de delegados desde C# 1.0 a C# 3.0:
class Test
{
delegate void TestDelegate(string s);
static void M(string s)
{
Console.WriteLine(s);
}
static void Main(string[] args)
{
// Original delegate syntax required
// initialization with a named method.
TestDelegate testdelA = new TestDelegate(M);
// C# 2.0: A delegate can be initialized with
// inline code, called an “anonymous method.” This
// method takes a string as an input parameter.
TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); };
// C# 3.0. A delegate can be initialized with
// a lambda expression. The lambda also takes a string
// as an input parameter (x). The type of x is inferred by the compiler.
TestDelegate testDelC = (x) => { Console.WriteLine(x); };
// Invoke the delegates.
testdelA(“Hello. My name is M and I write lines.”);
testDelB(“That’s nothing. I’m anonymous and “);
testDelC(“I’m a famous author.”);
// Keep console window open in debug mode.
Console.WriteLine(“Press any key to exit.”);
Console.ReadKey();
}
}
/* Output:
Hello. My name is M and I write lines.
That’s nothing. I’m anonymous and
I’m a famous author.
Press any key to exit.
*/
Bueno este es un Copy & Paste del MSDN, me parecio y para no olvidar lo dejo aqui.
Hace algunos días venia buscando información sobre el autocompletado y encontré algunas cosas que me ayudaron y bueno ya le puse autocompletado a mi programa y quedo bien, así que tratare de explicar lo que hice y pondré un ejemplo. Para empezar encontré esta página de Msdn.
Utilice las propiedades AutoCompleteCustomSource, AutoCompleteMode y AutoCompleteSource para crear un ComboBox que complete automáticamente cadenas de entrada comparando el prefijo que se escribe con los prefijos de todas las cadenas de un origen mantenido. Esto es útil para controles ComboBox en los que se escribirán frecuentemente direcciones URL, direcciones, nombres de archivo o comandos. Si hay entradas duplicadas en el origen mantenido, la finalización automática se comporta de forma imprevisible.
Si establece ComboBoxStyle en DropDownList, la lista sólo muestra si AutoCompleteMode es Suggest o SuggestAppend.
El uso de la propiedad AutoCompleteCustomSource es opcional, pero debe establecerse la propiedad AutoCompleteSource en CustomSource para poder utilizar AutoCompleteCustomSource.
Debe utilizar las propiedades AutoCompleteMode y AutoCompleteSource juntas.
Con AutoCompleteMode establecida en SuggestAppend y AutoCompleteSource establecida en ListItems, el comportamiento es el siguiente:
- Si la lista de cadenas está vacía, al presionar la tecla RETROCESO o SUPR no sucede nada.
- Si se presiona la tecla RETROCESO menos de un segundo, se selecciona el elemento anterior o no se selecciona nada si la lista de cadenas está vacía.
- Si se presiona la tecla RETROCESO más de un segundo, se selecciona el primer elemento.
- Si se presiona la tecla SUPR, se selecciona el primer elemento.
Mas informacion tambien pueden encontrar en CSharp Corner.
Despues de documentarnos un poco vamos a poner manos a la obra. Lo que vamos a hacer es cargar un ComboBox con la datos de la tabla Clientes haciendo uso de la base de datos Northwind y luego vamos a hacer que el TextBox se autocomplete con esos datos.
Primero vamos a Cargar el ComboBox haciendo uso de la Clase y metodo que hicimos en el post anterior Programacion en Capas, en donde definimos el metodo ListarClientes.
//Creamos una instancia de la Clase mCustomers
//que es la clase donde pondremos los metodos
mCustomers ObjCust = new mCustomers();
//Creamos una lista del tipo cCustomers
List<cCustomers> LstCust = new List<cCustomers>();
private void Form1_Load(object sender, EventArgs e)
{
LstCust = ObjCust.ListarClientes(“select CustomerID, CompanyName from customers”);
CboAuto.DataSource = LstCust;
CboAuto.ValueMember = “CustomerID”;
CboAuto.DisplayMember = “CompanyName”;
AutoCompletarTxt(AutoCompleteMode.None);
}
Ahora vamos a ver le procediminto para autocompletar el TextBox
private void AutoCompletarTxt(AutoCompleteMode AuMode)
{
//Indicamos que vamos a usar una fuente personalizada
TxtAuto.AutoCompleteSource = AutoCompleteSource.CustomSource;
//El modo de Autocompletado lo vamos a pasar por un parametro
//para poder escoger con los CheckBoxes
TxtAuto.AutoCompleteMode = AuMode;
//Creamos la Clase que corresponde al tipo AutoCompleteCustomSource
AutoCompleteStringCollection aColl = new AutoCompleteStringCollection();
//Hacemos una consultaa la Lista
var auto = from obj in LstCust
select obj.CompanyName;
//Recorremos la lista
foreach (string cad in auto)
{
aColl.Add(cad);
}
//Le asignamos la fuente al TextBox y eso es todo
TxtAuto.AutoCompleteCustomSource = aColl;
}
Como veran hice una consulta para recuperar el campo CompanyName, pero seguramente habra muchas maneras de hacer esto, espero sugerencia.
foreach (string cad in auto)
{
TxtAuto.AutoCompleteCustomSource.Add(cad);
}
Tambien pudimos poner asi, y ya no crear el AutoCompleteStringCollection.
Espero consejos y criticas.
Les dejo adjunto la fuente AppAutocomplete.rar