Codestories

November 10, 2009

Coloreando un DataGrid

Filed under: Programming — Tags: , , — Carlos @ 10:32 pm

Si ocupan Cambiar el color de las celdas de un dataGridView lo que tienen que hacer es lo siguiente
1. Configurar el evento DataBound del DataGridView
2. Revisar si el Binding fue exitoso (se cargo al menos una fila)
3. Colorear!

protected void gridWaveResources_DataBound(object sender, EventArgs e)
{
    if (dataGrid.Rows.Count == 0)
    {
        return;
    }
    System.Drawing.Color Color1 = System.Drawing.Color.LightGray;
    System.Drawing.Color Color2 = System.Drawing.Color.DarkGray;
    System.Drawing.Color Color3 = System.Drawing.Color.LightBlue;
    //
    foreach(DatagridViewRow dr in dataGrid)
    {
        dr.Columns[0].ItemStyle.BackColor = Color1;
        dr.Columns[1].ItemStyle.BackColor = Color2;
        dr.Columns[2].ItemStyle.BackColor = Color3;
    }       
}

November 3, 2009

Publicar codigo fuente en tu blog de WordPress

Filed under: Programming — Tags: , , — Carlos @ 10:28 pm

Al principio esto fue un gran problema para mi, queria tener mi propio blog de programacion, entonces ocupaba publicar codigo fuente, pero el texto plano de wordpress es no-muy-bonito (lease feo).
Asi que buscando un poco en Internet encontre que wordpress implementa el SyntaxHighlighter (http://alexgorbatchev.com/wiki/SyntaxHighlighter)

Esto es una serie de funciones javascript que dan formato al codigo fuente coloreandolo, identandolo y haciendolo mas legible, justo como tu IDE favorito

Como postear codigo fuente en tu blog wordpress?

Solo hay que poner el codigo entre:

[sourcecode language=”language“]

codigo aqui

[/sourcecode]

y
language” Puede ser uno de los siguientes lenguajes

  • bash
  • cpp
  • csharp
  • css
  • delphi
  • html
  • java
  • jscript
  • php
  • python
  • ruby
  • shell
  • sql
  • vb
  • xml

Sample

La entrada
[sourcecode language=”csharp“]
private void ShowRates(DataClassesDataContext bd)
{
var myTable = from table
where table.deleted = false
orderby table.name
select table;
myGrid.DataSource = myTable;
myGrid.DataBind();
}
[/sourcecode]
Producira

private void ShowRates(DataClassesDataContext bd)
{
 var myTable = from table
 where table.deleted = false
 orderby table.name
 select table;
 myGrid.DataSource = myTable;
 myGrid.DataBind();
}

Facil verdad?

November 2, 2009

Modificacion masiva de controles

Filed under: Programming — Tags: , — Carlos @ 8:27 pm

A veces tenemos que modificar determinada propiedad con el mismo valor para muchos controles (Web controls, winforms controls, etc…), para hacer esto tenemos que escribir una linea por cada control que queremos cambiar

esto se veria masomenos asi

control1.property = value;
control2.property = value;
control3.property = value;
...

controln.property = value;

donde control# es el nombre del control, property es la propiedad que queremos setear y value es el valor que queremos poner en property…

Si son un poco inteligentes pueden hacer algo como esto:

foreach(Control ctrl in Container.Controls)
{
    if(ctrl.GetType() == typeof(TextBox))
        ((TextBox)ctrl).Text = "";
    if(ctrl.GetType() == typeof(ComboBox))
        ((ComboBox)ctrl).SelectedIndex = -1;
    if(ctrl.GetType() == typeof(CheckBox))
        ((CheckBox)ctrl).Checked = false;
    if(ctrl.GetType() == typeof(Label))
        ((Label)ctrl).Text = "";
    if(ctrl.GetType() == typeof(DateTimePicker))
        ((DateTimePicker)ctrl).Text = "";
}

Funciona, pero puede hacerce mejor, podemos obtener mayor flexibilidad y elegancia con el siguiente procedimiento

public static void SetUpProperty(IEnumerator Controls, string type, string prop, object value)
{
    while(Controls.MoveNext())
    {
        Control c = (Control)Controls.Current;
        if (type.Equals("TextBox") && c is TextBox)
        {
            if (prop.Equals("Text"))
            {
                ((TextBox)c).Text = value.ToString();
            }
        }
        if (type.Equals("DropDownList") && c is DropDownList)
        {
            if (prop.Equals("SelectedIndex"))
            {
                ((DropDownList)c).SelectedIndex = (int)value;
            }
            if (c.HasControls())
            {
                SetUpProperty(c.Controls.GetEnumerator(), type, prop, value);
            }
        }
    }
}

IEnumerator Controls(Enumeracion con los controles que queremos setear (podemos obtenerlo con esta funcion contenedor.Controls.getEnumerator()))

string type(bandera que nos indica el tipo de control a modificar, esto para discriminar entre TextBoxes y DropDownLists)

string property(Bandera con el nombre de la propiedad que queremos modificar)

object value(Valor que queremos poner en Property [tengan cuidado para que no de error, o metan todo entre un try])

Si este metodo lo ponen en una clase podran llamarlo desde cualquier lado sin tener que hacer instacia de la clase que lo contiene, ya que el modificador de acceso es static….

Estoy seguro que se puede mejorar… si alguien tiene idea de como por favor dejar su comentario…

October 22, 2009

Hello world!

Filed under: Programming — codestories @ 5:31 pm

The first program you should write when you are discovering a new language…

CSharp

Console.WirteLine("Hello World");

Java

System.Out.Println("Hello World");

VB .net

MessageBox.Show("Hello World");

Create a free website or blog at WordPress.com.