Para habilitar la posibilidad de búsqueda de errores y/o fallos (debug) en nuestro proyecto de AutoCAD en Visual Studio 2015 es necesario correr el siguiente comando en el command prompt de AutoCAD:
NEXTFIBERWORLD [ENTER]
en donde el valor 0 lo habilita y el valor 1 lo deshabilita.
Mostrando las entradas con la etiqueta C#. Mostrar todas las entradas
Mostrando las entradas con la etiqueta C#. Mostrar todas las entradas
martes, 12 de septiembre de 2017
jueves, 14 de abril de 2016
Cerrar una ventana desde un control hijo usando Event Handlers
Supongamos que creamos un widget de Gtk que deseamos poner en una ventana, pero que en algún evento del mismo se cierre la ventana madre.
En este caso usaremos un Event Handler para que la ventana madre se suscriba al mismo.
Para lograrlo se pueden seguir los siguientes pasos:
1.- Definimos el EventHandler en el control hijo.
public event EventHandler Closing;
2.- La clase madre debe suscribirse al mismo.
por ejemplo:
MainWindow win = new MainWindow();
win.Closing += new EventHandler(OnDeleteEvent);
pero como en nuestro caso es un widget omitiremos la parte de la creación del widget.
el código quedaría así:
this.pdfviewerwidget2.Closing += new EventHandler(OnDeleteEvent);
4.-Al cerrar el widget revisar el evento y activarlo:
private void btnClose_Clicked (object sender, EventArgs e)
{
if (Closing != null) {
Closing (this, new EventArgs ());
}
this.Destroy();
}
5.- Ahora; creamos el método que se activará al cerrar el control hijo en la clase madre:
public void OnDeleteEvent(object sender, EventArgs args)
{
this.Destroy ();
}
Y esto es todo lo necesario, ahora en cuanto cerremos en el botón hijo se active el botón Close, se activará el evento OnDeleteEvent en la clase madre.
En este caso usaremos un Event Handler para que la ventana madre se suscriba al mismo.
Para lograrlo se pueden seguir los siguientes pasos:
1.- Definimos el EventHandler en el control hijo.
public event EventHandler Closing;
2.- La clase madre debe suscribirse al mismo.
por ejemplo:
MainWindow win = new MainWindow();
win.Closing += new EventHandler(OnDeleteEvent);
pero como en nuestro caso es un widget omitiremos la parte de la creación del widget.
el código quedaría así:
this.pdfviewerwidget2.Closing += new EventHandler(OnDeleteEvent);
4.-Al cerrar el widget revisar el evento y activarlo:
private void btnClose_Clicked (object sender, EventArgs e)
{
if (Closing != null) {
Closing (this, new EventArgs ());
}
this.Destroy();
}
5.- Ahora; creamos el método que se activará al cerrar el control hijo en la clase madre:
public void OnDeleteEvent(object sender, EventArgs args)
{
this.Destroy ();
}
Y esto es todo lo necesario, ahora en cuanto cerremos en el botón hijo se active el botón Close, se activará el evento OnDeleteEvent en la clase madre.
martes, 15 de marzo de 2016
Usar la ConnectionString en el archivo machine.config de mono
Para usar un archivo de configuración semejante al app.config o web.config de .NET en windows es posible agregarlo al archivo machine.config que existe en /etc/mono/<Version de Mono> de manera similar a como lo usamos en los archivos de configuración en Windows.
jueves, 12 de febrero de 2015
Eliminar registros repetidos de una DataTable
A continuación les muestro un ejemplo de como eliminar los registros repetidos de una DataTable.
//DataTable con los reqistros repetidos (myRepeatedData)
//Filtramos los registros únicos en la variable var.
var uniqueRows = myRepeatedData.AsEnumerable().Distinct(DataRowComparer.Default);
//Lo copiamos a otra DataTable
DataTable myUniqueData = uniqueRows.CopyToDataTable();
Con esto tendremos en la DataTable myUniqueData los registros únicos.
//DataTable con los reqistros repetidos (myRepeatedData)
//Filtramos los registros únicos en la variable var.
var uniqueRows = myRepeatedData.AsEnumerable().Distinct(DataRowComparer.Default);
//Lo copiamos a otra DataTable
DataTable myUniqueData = uniqueRows.CopyToDataTable();
Con esto tendremos en la DataTable myUniqueData los registros únicos.
jueves, 22 de enero de 2015
Agregar una columna a una DataSet
Ejemplo:
DataSet dsBom = new DataSet();
CreateDataSet cdsBom = new CreateDataSet();
DataColumn dcEqty = new DataColumn("Eqty");
dsBom.Tables[0].Columns.Add(dcEqty);
dsBom.Tables[0].Rows[0]["Eqty"] = 1565;
DataSet dsBom = new DataSet();
CreateDataSet cdsBom = new CreateDataSet();
DataColumn dcEqty = new DataColumn("Eqty");
dsBom.Tables[0].Columns.Add(dcEqty);
dsBom.Tables[0].Rows[0]["Eqty"] = 1565;
Como crear la estructura de una DataTable
Agunas veces necesitamos crear un datatable que no necesariamente venga de
una base de datos.
Esto se hace de la siguiente manera:
//Creamos el objeto DataTable
DataTable tabla = new DataTable();
//Creamos el objeto ColumnaDataColumn columna;
//Creamos el objeto RenglonDataRow renglon;
//Creamos las columnas necesarias y las agregamos a la tablacolumna = new DataColumn();columna.ColumnName = "Campo1";columna.DataType = System.Type.GetType("System.Int32");tabla.Columns.Add(columna);columna = new DataColumn();columna.ColumnName = "Campo2";columna.DataType = System.Type.GetType("System.String");tabla.Columns.Add(columna);
Con esto ya tenemos un DataTable de nombre tabla con dos campos: El campo "Campo1" de tipo Int32 y el "Campo2" de tipo String.
A continuacion les pongo las propiedades que pueden usar en el objeto Columna:
Esto se hace de la siguiente manera:
//Creamos el objeto DataTable
DataTable tabla = new DataTable();
//Creamos el objeto ColumnaDataColumn columna;
//Creamos el objeto RenglonDataRow renglon;
//Creamos las columnas necesarias y las agregamos a la tablacolumna = new DataColumn();columna.ColumnName = "Campo1";columna.DataType = System.Type.GetType("System.Int32");tabla.Columns.Add(columna);columna = new DataColumn();columna.ColumnName = "Campo2";columna.DataType = System.Type.GetType("System.String");tabla.Columns.Add(columna);
Con esto ya tenemos un DataTable de nombre tabla con dos campos: El campo "Campo1" de tipo Int32 y el "Campo2" de tipo String.
A continuacion les pongo las propiedades que pueden usar en el objeto Columna:
- AllowDBNull
- Acepta un valor booleano que especifica si acepta valore nulos.
- AutoIncrement
- Acepta un valor booleano qe especifica si el valor de la columna se incrementara automaticamente o no.
- AutoIncrementSeed
- El valor con el que comenzara una columna que se incrementa automaticamente.
- AutoIncrementStep
- El valor en que se incrementara una columna que se incrementa automaticamente.
- ColumnName
- Un string con el nombre de la columna.
- DataType
- Un valor de los especificados en el tipo SystemType que especifica el tipo de valor que aceptara la columna.
- DefaultValue
- El valor que la columna tomara por defecto en caso de que no se especifique alguno.
- MaxLength
- Especifica la longitud maxima de texto que aceptara un columna de tipo string.
- Unique
- Acepta un valor booleano para especificar si la columna debe mantener un valor unico en cada registro de la columna.
Agregar una columna autonumerica a un DataTable
Para agregar una columna autonumerica a un DataTable es necesario
crear un objeto DataTable y un objeto Column que tenga la
propiedad AutoIncrement en true y luego mezclarlo con el
DataTable que deseamos como en el siguiente ejemplo:
DataTable myDt = new DataTable();
DataColumn dc = new DataColumn();
dc.ColumnName = "#";
dc.DataType = typeof(int);
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
BoardCode bc = new BoardCode();
DataTable dt = bc.GetHoldersByBcID(int.Parse(this.TextBox1.Text));
myDt.Columns.Add(dc);
myDt.Merge(dt);
this.GridView1.DataSource = myDt;
this.GridView1.DataBind();
Asi, cuando la despleguemos en un DataGridView se mostrara en la primera columna con un contador de renglones.
DataTable myDt = new DataTable();
DataColumn dc = new DataColumn();
dc.ColumnName = "#";
dc.DataType = typeof(int);
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
BoardCode bc = new BoardCode();
DataTable dt = bc.GetHoldersByBcID(int.Parse(this.TextBox1.Text));
myDt.Columns.Add(dc);
myDt.Merge(dt);
this.GridView1.DataSource = myDt;
this.GridView1.DataBind();
Asi, cuando la despleguemos en un DataGridView se mostrara en la primera columna con un contador de renglones.
miércoles, 17 de diciembre de 2014
Como obtener los valores seleccionados en ASPxGridview
Cuando tenemos un Gridview con la selección habilitada y
necesitamos saber cuáles registros han sido seleccionados por el usuario, debemos obtener la lista de renglones seleccionados e iterar sobre ella para
obtener los datos deseados tal y como se muestra en el siguiente ejemplo:
this.ASPxMemo1.Text = String.Empty;
List<object> fieldValues = ASPxGridView1.GetSelectedFieldValues(new string[] { "ProductId", "Name" });
foreach (object[] item in fieldValues)
{
this.ASPxMemo1.Text += item[1].ToString() + "\n";
}
List<object> fieldValues = ASPxGridView1.GetSelectedFieldValues(new string[] { "ProductId", "Name" });
foreach (object[] item in fieldValues)
{
this.ASPxMemo1.Text += item[1].ToString() + "\n";
}
En este caso obtenemos un lista de objetos con las
cadenas (del campo locationid) de cada renglón seleccionado y solo iteramos con el foreach para obtener cada Nombre del Producto (Name).
sábado, 15 de noviembre de 2014
Buscar un valor en una Data Table con el operador Select
Cuando necesitemos buscar por la existencia o no-existencia de un valor en una Data Table podemos usar LINQ de la siguiente manera:
Si deseamos buscar si en una columna llamada proceso tenemos un valor 'X':
DataTable dt = GetDataTable();
var rowsWithX = dt.Select("proceso = 'X'");
if(rowsWithX.Lenght != 0)
{
//Hacer algo si se encuentra la X en la columna proceso
}
Si deseamos hacer algo cuando en la columna exista cualquier valor diferente de 'X':
DataTable dt = GetDataTable();
var rowsWithoutX = dt.Select("proceso <> 'X'");
if(rowsWithoutX.Lenght != 0)
{
//Hacer algo si no se encuentra la X en la columna proceso
}
Si deseamos buscar si en una columna llamada proceso tenemos un valor 'X':
DataTable dt = GetDataTable();
var rowsWithX = dt.Select("proceso = 'X'");
if(rowsWithX.Lenght != 0)
{
//Hacer algo si se encuentra la X en la columna proceso
}
Si deseamos hacer algo cuando en la columna exista cualquier valor diferente de 'X':
DataTable dt = GetDataTable();
var rowsWithoutX = dt.Select("proceso <> 'X'");
if(rowsWithoutX.Lenght != 0)
{
//Hacer algo si no se encuentra la X en la columna proceso
}
También es posible usar el operador like para ver si se encuentra una cadena de caracteres dentro de un campo de char o varchar:
DataTable dt = GetDataTable();
var rowsWithoutX = dt.Select("proceso like '%X'%");
if(rowsWithoutX.Lenght != 0)
{
//Hacer algo si no se encuentra la X en la columna proceso
}
DataTable dt = GetDataTable();
var rowsWithoutX = dt.Select("proceso like '%X'%");
if(rowsWithoutX.Lenght != 0)
{
//Hacer algo si no se encuentra la X en la columna proceso
}
miércoles, 12 de febrero de 2014
Pasos para renombrar un proyecto de ASP.NET
Algunas veces es necesario renombrar un proyecto de ASP.NET, especialmente cuando nos basamos en una plantilla predefinida.
Para hacerlo es necesario seguir lo siguientes pasos:
Con estos pasos quedará todo con el nuevo nombre de proyecto.
Para hacerlo es necesario seguir lo siguientes pasos:
- Renombrar el folder que contiene al website.
- Abrir el sitio en Visual Studio.
- Renombrar la solución dando un click con el botón derecho en la solución, seleccionando rename del menú contextual.
- Renombrar el proyecto dando un click con el botón derecho en el proyecto, seleccionando rename del menú contextual.
- Abrir el website como proyecto.
- Modificar el Assembly Name y el Default Namespace en las propiedades del proyecto.
- Reemplazar las ocurrencias de namespace <proyecto>{ con el nombre del proyecto deseado en todos los archivos (CTRL+SHIFT+H).
- Reemplazar las ocurrencias de Inherits="<proyecto>. con el nombre del proyecto deseado en todos los archivos (CTRL_SHIFT_H).
Con estos pasos quedará todo con el nuevo nombre de proyecto.
Suscribirse a:
Entradas (Atom)
Mover mensajes seleccionados a un personal folder en Oulook 2016
Este es un ejemplo de como mover los mensajes seleccionados a un personal folder (pst) en Outlook 2016 usando VBA. Sub MoveInbox() Mov...
-
A continuación les muestro un ejemplo de como eliminar los registros repetidos de una DataTable . //DataTable con los reqistros repetidos...
-
Primero hay que crear el Panel como en el siguiente ejemplo: <dx:ASPxLoadingPanel ID="loadingPanel" ClientInstanceName=...
-
Problemas con Aplicaciones Web Las aplicaciones web son sin estado, lo que significa que una vez una página web es enviada desde servidor, ...