Archivo de la categoría C sharp

¿como detectar la pulsacion de mas de 2 teclas simultaneamente en csharp?

Un ejemplo extraido de la propia ayuda del Net 2.0

using System;
using System.Text;
class Sample { public static void Main() {
ConsoleKeyInfo cki;
String m1 = "This example discovers the console and modifier keys " + "that you press.\n";
String m2 = "Press any combination of CTL, ALT, and SHIFT modifier keys, " + "and a console key.\nPress the Escape (Esc) key to quit: ";
String m3 = "You pressed ";
String m4 = " (character '{0}').";
StringBuilder sb = new StringBuilder();
Console.TreatControlCAsInput = true;
Console.WriteLine(m1);
do {
Console.WriteLine(m2); sb.Length = 0;
cki = Console.ReadKey(true);
sb.Append(m3);
if (cki.Modifiers != 0) {
if ((cki.Modifiers & ConsoleModifiers.Alt) != 0) sb.Append("ALT+"Wink;
if ((cki.Modifiers & ConsoleModifiers.Shift) != 0) sb.Append("SHIFT+"Wink;
if ((cki.Modifiers & ConsoleModifiers.Control) != 0) sb.Append("CTL+"Wink;
}
sb.Append(cki.Key.ToString());
sb.AppendFormat(m4, cki.KeyChar);
sb.AppendLine().AppendLine();
Console.WriteLine(sb.ToString());
} while (cki.Key != ConsoleKey.Escape);
}
}

Como Cargar y descargar un formulario en C# (C sharp)

Hola,

Vamos con el primer ejemplo… a ver como queda.

Creamos un nuevo proyecto, y le ponemos 2 forms.

Al primer Form1(pantalla) le añadimos un boton para cargar/llamar al segundo Form2(pantalla).

Pinchamos doble click en el boton y escribimos lo siguiente:

Código:

private void button1_Click(object sender, System.EventArgs e)
        {
            Form2 pantalla2;
            pantalla2 = new Form2( );
            pantalla2.ShowDialog();
        }

Ahora en el Form2 creamos un boton nuevo

Le damos doble click y escribimos

Código:

private void button1_Click(object sender, System.EventArgs e)
        {
            this.Close ();
        }

Y ya esta.

Una pequeña variante de esto:

private void button1_Click(object sender, System.EventArgs e)
{
Form2 pantalla2;
pantalla2 = new Form2( );
pantalla2.ShowDialog();
}

sería esto otro:

private void button1_Click(object sender, System.EventArgs e)
{
Form2 pantalla2 = new Form2();
pantalla2.Show();
}

El añadir al “Show” la palabra “Dialog”, hace que la nueva ventana sea modal. Eso quiere decir que requiere respuesta y no te dejará hacer nada más hasta que esta pantalla2 termine.
Eso puede impedirte utilizar otros botones de la pantalla1 , mientras no hayas terminado la 2. En cambio el “Show” a secas te permite tener varias ventanas abiertas activas simultáneamente.

O sea que todo depende de lo que quieras hacer.

Etiquetas:

Como ejecutar un programa *.EXE externo desde C# / csharp

Para ejecutar un programa *.exe externo desde C#, por ejemplo desde un boton

Código:

private void button1_Click(object sender, System.EventArgs e)
        {
            System.Diagnostics.Process.Start("C:\\windows\\notepad.exe"Wink;
        }

Aprender java es mejor que aprender C#

…O por lo menos es lo que dice la siguiente publicidad

bus

Tu, ¿Que lenguajes y/o sistema operativo es mejor aprender?

Ejemplo de una pequeña diferencia entre C# y java

Este codigo esta escrito en java, fijaros que se admite declarar un array de enteros de dos formas distintas.

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int i[]=new int[4];
        int[] j=new int[2];
        i[1]=2;
        j[1]=3;
        System.out.println("valor de i:" + i[1]+ " Valor de j:"+ j[1]);
    }

}

Mientras que en c sharp o C#, esto anterior no es admisible. A continuacion pongo su equivalente en C#.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int [] i;
            i=new int[3];
            i[1]=2;
            Console.WriteLine ("valor: " + i[1]);
            Console.ReadKey ();
        }
    }
}

Crear Base datos con SQL Server Compact

La 1º Tabla
//desde aqui se inicia la primera transacción
string Sqlsql = “CREATE TABLE tblPub (“
+ “nomPub nvarchar DEFAULT ‘Nombre’ CONSTRAINT NomPubPKey PRIMARY
KEY NOT NULL, “
+ “precEsp bit DEFAULT 0, “
+ “metaHora smallint DEFAULT 0 )”;

La 2º Tabla
Sqlsql = “CREATE TABLE tblInf (“
+ “nomPub nvarchar DEFAULT ‘Nombre’”
+ “mes smallint DEFAULT 0 )”;

en la ayuda de SQL Server Compact sobre crear tablas aparece lo
siguiente ….

CREATE TABLE table_name
( { < column_definition > | < table_constraint > } [ ,...n ]
)
< column_definition > ::=
{ column_name data_type }
[ { DEFAULT constant_expression
| [ IDENTITY [ ( seed , increment ) ]
]
} ]
[ ROWGUIDCOL ]
[ < column_constraint > [ ...n ] ]
< column_constraint > ::=
[ CONSTRAINT constraint_name ]
{ [ NULL | NOT NULL ]
| [ PRIMARY KEY | UNIQUE ]
| REFERENCES ref_table [ ( ref_column ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
}
< table_constraint > ::=
[ CONSTRAINT constraint_name ]
{ [ { PRIMARY KEY | UNIQUE }
{ ( column [ ,...n ] ) }
]
| FOREIGN KEY
( column [ ,...n ] )
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
}

 

 

si quieres poner una relación desde la segunda tabla a la
primera, exigiendo que el campo “nomPub” de la segunda se refiera siempre a
un “nomPub” existente en la primera, crearías un “foreign key” como sigue:

CREATE TABLE tblInf (
nomPub nvarchar DEFAULT ‘Nombre’
CONSTRAINT Fk_Relacion REFERENCES tblInf(nomPub)
ON DELETE CASCADE ON UPDATE CASCADE,
mes smallint DEFAULT 0 )

En este ejemplo, además de la relación de clave externa, hemos añadido una
cláusula de borrado y actualización en cascada, de forma que si borras un
registro de la 1a tabla se borren todos los de la 2a que estén relacionados
con él, y lo mismo en caso de modificarlo. Por supuesto que esa parte es
opcional y se puede suprimir si no es ese el comportamiento que deseas.