<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>solo VB.NET - Visual Basic .Net &#187; Definiciones</title>
	<atom:link href="http://www.solovb.net/index.php/category/definiciones/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.solovb.net</link>
	<description>Visual Basic.NET, VB.NET, Programación, Tutoriales, Ejemplos</description>
	<lastBuildDate>Fri, 16 Jul 2010 21:16:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Usa los colores de Visual Studio en tu programa</title>
		<link>http://www.solovb.net/index.php/2009/08/02/usa-los-colores-de-visual-studio-en-tu-programa/</link>
		<comments>http://www.solovb.net/index.php/2009/08/02/usa-los-colores-de-visual-studio-en-tu-programa/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 19:41:40 +0000</pubDate>
		<dc:creator>Eliseo</dc:creator>
				<category><![CDATA[Controles]]></category>
		<category><![CDATA[Definiciones]]></category>
		<category><![CDATA[Ejemplos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Brushes]]></category>
		<category><![CDATA[Colores]]></category>
		<category><![CDATA[DrawItemState]]></category>
		<category><![CDATA[DrawMode]]></category>
		<category><![CDATA[DrawRectangle]]></category>
		<category><![CDATA[ListBox]]></category>
		<category><![CDATA[OwnerDrawFixed]]></category>
		<category><![CDATA[PropertyInfo]]></category>

		<guid isPermaLink="false">http://www.solovb.net/?p=592</guid>
		<description><![CDATA[El control ColorDialog nos presenta una paleta de colores tradicional, pero lo cierto es que la de visual studio es mucho más linda y nos muestra todos los colores por su nombre como están definidos en las propiedades del objeto System.Drawing.Color.]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-6779957923342232";
/* BloqueGrafico */
google_ad_slot = "7782048177";
google_ad_width = 250;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p><p>Este ejemplo surgio de una consulta en <a href="http://www.solovb.net/index.php/2009/06/05/cuadro-de-dialogo-para-seleccionar-un-color-colordialog/">este artículo</a>.</p>
<p>El control <strong>ColorDialog</strong> nos presenta una paleta de colores tradicional, pero lo cierto es que la de <strong>visual studio</strong> es mucho más linda y nos muestra todos los colores por su nombre como están definidos en las propiedades del objeto <strong>System.Drawing.Color</strong>.</p>
<p>Dado el problema de que no existe un control que nos muestre esta lista de colores vamos a ver como podemos constriur una nosotros mismos.</p>
<p>Para el ejemplo necesitaremos un nuevo proyecto y dos formularios.</p>
<p>En el primer formulario solo tendremos un baton para llamar al formulario 2, tal como se ve en la siguiente figura:</p>
<p><img class="aligncenter size-full wp-image-593" title="coloresNombre001" src="http://www.solovb.net/wp-content/uploads/2009/08/coloresNombre001.jpg" alt="coloresNombre001" width="407" height="338" /></p>
<p>y el código del boton es el siguiente:</p>
<pre class="brush: vbnet; ruler: false; first-line: 1; highlight: [0]">
Private Sub btnColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnColor.Click
Dim vForm2 As New Form2
vForm2.ShowDialog()
End Sub
</pre>
<p>y en el siguiente formulario pondremos yn control ListBox y dos botoes (aceptar y cancelar) igual que en el siguiente formulario:</p>
<p><img class="aligncenter size-full wp-image-594" title="coloresNombre002" src="http://www.solovb.net/wp-content/uploads/2009/08/coloresNombre002.jpg" alt="coloresNombre002" width="304" height="296" /></p>
<p>En el evento Load del formulario establecemos algunas propiedades del control ListBox y cargamos los nombres de los colores con el siguiente código:</p>
<pre class="brush: vbnet; ruler: false; first-line: 1; highlight: [0]">
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBox1.DrawMode = DrawMode.OwnerDrawFixed
ListBox1.ItemHeight = 20

ListBox1.Items.Clear()
ListBox1.BeginUpdate()
For Each pi As Reflection.PropertyInfo In GetType(Color).GetProperties(Reflection.BindingFlags.Static Or Reflection.BindingFlags.Public)
ListBox1.Items.Add(pi.Name)
Next
ListBox1.EndUpdate()
End Sub
</pre>
<p>En la primer linea del Load &#8220;ListBox1.DrawMode = DrawMode.OwnerDrawFixed&#8221;  establecemos que todos los elementos del control se dibujan manualmente y tienen el mismo alto. Esto, ademças, desencadena un suceso DrawItem justo antes de mostrar cada elemento.</p>
<p>Para programar el evento <strong>DrawItem </strong>del <strong>ListBox</strong>, seleccionamos (en la vista de diseño) el ListBox1, presionamos F4 para ver las propiedades, y en la parte de arriba del cuadro de propiedades seleccionamos el icono del rayo para ver los evento que el control tiene disponibles, buscamos DrawItem y le damos doble clic. La siguiente imagen ejemplifica como hacerlo:</p>
<p><img class="aligncenter size-full wp-image-595" title="coloresNombre003" src="http://www.solovb.net/wp-content/uploads/2009/08/coloresNombre003.jpg" alt="coloresNombre003" width="621" height="337" /></p>
<p>y este es el código del evento <strong>DrawItem</strong></p>
<pre class="brush: vbnet; ruler: false; first-line: 1; highlight: [0]">
Private Sub ListBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
Dim rectangulo As Rectangle = e.Bounds

If (e.State And DrawItemState.Selected) Then
e.Graphics.FillRectangle(SystemBrushes.Highlight, rectangulo)
Else
e.Graphics.FillRectangle(Brushes.White, rectangulo)
End If

Dim nombreColor As String = ListBox1.Items(e.Index)

Dim b As New SolidBrush(Color.FromName(nombreColor))

rectangulo.Inflate(-16, -2)
e.Graphics.FillRectangle(b, New Rectangle(rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

e.Graphics.DrawRectangle(Pens.Black, New Rectangle(rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

If (e.State And DrawItemState.Selected) Then
e.Graphics.DrawString(nombreColor, e.Font, Brushes.White, rectangulo.X + 34, rectangulo.Y + 2)
Else
e.Graphics.DrawString(nombreColor, e.Font, Brushes.Black, rectangulo.X + 34, rectangulo.Y + 2)
End If
End Sub
</pre>
<p>Ahora solo nos falta programar los eventosde los dos botones como se ve en el siguiente código:</p>
<pre class="brush: vbnet; ruler: false; first-line: 1; highlight: [0]">
Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
My.Forms.Form1.BackColor = Color.FromName(ListBox1.SelectedItem)
End Sub

Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
Me.Close()
End Sub
</pre>
<p>Bueno, a probar la aplicación&#8230; si todo salió bien, se verá así:</p>
<p><img class="aligncenter size-full wp-image-596" title="coloresNombre004" src="http://www.solovb.net/wp-content/uploads/2009/08/coloresNombre004.jpg" alt="coloresNombre004" width="489" height="436" /></p>
<p>Les dejo algunas definiciones:</p>
<p><strong>Graphics.FillRectangle (Método):</strong> Rellena el interior de un rectángulo especificado por un par de coordenadas, un valor de ancho y un valor de alto.<br />
<strong><br />
Graphics.DrawRectangle (Método):</strong> Dibuja un rectángulo especificado por un par de coordenadas, un valor de ancho y un valor de alto.</p>
<p><strong>Graphics.DrawString (Método):</strong> Dibuja la cadena de texto especificada en la ubicación especificada y con los objetos Brush y Font especificados.</p>
<p>Espero que les sirva y lo puedan usar en sus proyectos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solovb.net/index.php/2009/08/02/usa-los-colores-de-visual-studio-en-tu-programa/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Palabras clave</title>
		<link>http://www.solovb.net/index.php/2009/07/13/palabras-clave/</link>
		<comments>http://www.solovb.net/index.php/2009/07/13/palabras-clave/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 10:10:03 +0000</pubDate>
		<dc:creator>Eliseo</dc:creator>
				<category><![CDATA[Definiciones]]></category>

		<guid isPermaLink="false">http://www.solovb.net/?p=543</guid>
		<description><![CDATA[Las Palabras clave son palabras "reservadas" para utilizar dentro del lenguaje que tienen un significado especial y no pueden ser utilizadas como nombres de variables o identidicadores (salvo que se fuerce mediante la utilización de corchetes "[]").]]></description>
			<content:encoded><![CDATA[<p>Las Palabras clave son palabras &#8220;reservadas&#8221; para utilizar dentro del lenguaje que tienen un significado especial y no pueden ser utilizadas como nombres de variables o identidicadores (salvo que se fuerce mediante la utilización de corchetes &#8220;[ ]&#8220;).</p>
<p>Acá les dejo una lista de las palabras claves de visual .NET en su versión 2005:</p>
<ul>
<li>AddHandler</li>
<li>AddressOf</li>
<li>Alias</li>
<li>And</li>
<li>AndAlso</li>
<li>As</li>
<li>Boolean</li>
<li>ByRef</li>
<li>Byte</li>
<li>ByVal</li>
<li>Call</li>
<li>Case</li>
<li>Catch</li>
<li>CBool</li>
<li>CByte</li>
<li>CChar</li>
<li>CDate</li>
<li>CDbl</li>
<li>CDec</li>
<li>Char</li>
<li>CInt</li>
<li>Class</li>
<li>CLng</li>
<li>CObj</li>
<li>Const</li>
<li>Continue</li>
<li>CSByte</li>
<li>CShort</li>
<li>CSng</li>
<li>CStr</li>
<li>CType</li>
<li>CUInt</li>
<li>CULng</li>
<li>CUShort</li>
<li>Date</li>
<li>Decimal</li>
<li>Declare</li>
<li>Default</li>
<li>Delegate</li>
<li>Dim</li>
<li>DirectCast</li>
<li>Do</li>
<li>Double</li>
<li>Each</li>
<li>Else</li>
<li>ElseIf</li>
<li>End</li>
<li>EndIf</li>
<li>Enum</li>
<li>Erase</li>
<li>Error</li>
<li>Event</li>
<li>Exit</li>
<li>False</li>
<li>Finally</li>
<li>For</li>
<li>Friend</li>
<li>Function</li>
<li>Get</li>
<li>GetType</li>
<li>Global</li>
<li>GoSub</li>
<li>GoTo</li>
<li>Handles</li>
<li>If</li>
<li>Implements</li>
<li>Imports</li>
<li>In</li>
<li>Inherits</li>
<li>Integer</li>
<li>Interface</li>
<li>Is</li>
<li>IsNot</li>
<li>Let</li>
<li>Lib</li>
<li>Like</li>
<li>Long</li>
<li>Loop</li>
<li>Me</li>
<li>Mod</li>
<li>Module</li>
<li>MustInherit</li>
<li>MustOverride</li>
<li>MyBase</li>
<li>MyClass</li>
<li>Namespace</li>
<li>Narrowing</li>
<li>New</li>
<li>Next</li>
<li>Not</li>
<li>Nothing</li>
<li>NotInheritable</li>
<li>NotOverridable</li>
<li>Object</li>
<li>Of</li>
<li>On</li>
<li>Operador</li>
<li>Option</li>
<li>Optional</li>
<li>Or</li>
<li>OrElse</li>
<li>Overloads</li>
<li>Overridable</li>
<li>Overrides</li>
<li>ParamArray</li>
<li>Partial</li>
<li>Private</li>
<li>Property</li>
<li>Protected</li>
<li>Public</li>
<li>RaiseEvent</li>
<li>ReadOnly</li>
<li>ReDim</li>
<li>REM</li>
<li>RemoveHandler</li>
<li>Resume</li>
<li>Return</li>
<li>SByte</li>
<li>Select</li>
<li>Set</li>
<li>Shadows</li>
<li>Shared</li>
<li>Short</li>
<li>Single</li>
<li>Static</li>
<li>Step</li>
<li>Stop</li>
<li>String</li>
<li>Structure</li>
<li>Sub</li>
<li>SyncLock</li>
<li>Then</li>
<li>Throw</li>
<li>To</li>
<li>True</li>
<li>Try</li>
<li>TryCast</li>
<li>TypeOf</li>
<li>UInteger</li>
<li>ULong</li>
<li>UShort</li>
<li>Using</li>
<li>Variant</li>
<li>Wend</li>
<li>When</li>
<li>While</li>
<li>Widening</li>
<li>With</li>
<li>WithEvents</li>
<li>WriteOnly</li>
<li>Xor</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.solovb.net/index.php/2009/07/13/palabras-clave/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La clase System.String &#8211; Manejo de texto</title>
		<link>http://www.solovb.net/index.php/2009/02/01/la-clase-system-string/</link>
		<comments>http://www.solovb.net/index.php/2009/02/01/la-clase-system-string/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 13:09:27 +0000</pubDate>
		<dc:creator>Eliseo</dc:creator>
				<category><![CDATA[Definiciones]]></category>
		<category><![CDATA[Ejemplos]]></category>
		<category><![CDATA[String]]></category>

		<guid isPermaLink="false">http://www.solovb.net/?p=104</guid>
		<description><![CDATA[Visual Basic .NET ha cambiado la forma de trabajar con las cadenas de texto con respecto a las versiones anteriores. Todo el menejo de estas nuevas características se encuentran en la clase <strong>System.String</strong>. Ahora cada variable de texto es un objeto de tipo String.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.solovb.net">Visual Basic .NET</a> ha cambiado la forma de trabajar con las cadenas de texto con respecto a las versiones anteriores. Todo el menejo de estas nuevas características se encuentran en la clase <strong>System.String</strong>. Ahora cada variable de texto es un objeto de tipo String.</p>
<p>Todas las clases de Visual Basic .NET tienen un método .ToString para mostrar una su contenido en formato texto. </p>
<p>En visual basic.net tenemos dos formas de trabajar con las variables de texto o string:</p>
<p>- Utilizando las viejas funciones que conocemos desde &#8220;siempre&#8221; como <strong>left</strong>, <strong>right</strong>, <strong>trim</strong>, <strong>replace</strong>, etc.</p>
<p>- Utilizar los nuevos métodos de la clase <strong>System.String </strong>de .NET</p>
<p>Para utilizar las funciones de de cadenas de visual basi &#8220;tradicional&#8221; (por llamar de alguna manera a las versiones anteriores a .NET) están disponibles en el espacio de nombre Microsoft.VisualBasic por ejemplo:</p>
<pre class="brush: vb;">
microsoft.VisualBasic.Left(&quot;Text1&quot;, 5)
</pre>
<p>veamos algunos metodos y propiedades del objeto String</p>
<p>Propiedades</p>
<p><img src="http://www.solovb.net/images/stringtabla1.jpg" class="alignnone" title="Stringtabla1" alt="Stringtabla1" width="744" height="61" /></p>
<p>Métodos</p>
<p><img src="http://www.solovb.net/images/stringtabla2.jpg" class="alignnone" title="Stringtabla2" alt="Stringtabla2" width="744" height="1381" /></p>
<p>y ahora veamos algunos ejemplos en los que utilizaremos algunas de estas propiedades y métodos:</p>
<p>Para averiguar la longitus de un texto usamos la propiedad Length:</p>
<pre class="brush: vb;">

dim texto1 as string = &quot;un texto cualquiera&quot;

msgbox(texto1.Length) 'Mostrará 19

'También podemos hacerlo directamente sobre el texto

msgbox(&quot;otro texto cualquiera&quot;.Length)  'Mostrará 21
</pre>
<p>Para alinear el contenido de una cadena de texto usamos PadLeft o PadRight</p>
<p>Estos dos métodos son nuevos y no tienen equibalencia en visual basic tradicional. Ellos aumentan la cadena alineando su contenido hacia la izquierda o derecha.</p>
<p>Para ver el siguiente ejemplo en funcionamiento solo copia el código en el evento Load de un formulario y hazlo correr.</p>
<p>Te voy a explicar brevemente que es lo que hace: primero crea un objeto textbox y lo parametriza para poder mostrar varias lineas con la propiedad multiline en True. Hace que el textbox ocupe todo el formulario con la propiedad Dock en Fill y como lo que queremos ver es la alinación de las cadenas de texto es muy importante usar una fuente monoespaciada como Courrier New. Esto es muy importante porque si usamos una fuente que no es monoespaciada no veremos los textos correctamente alineados. Ah&#8230; y la constante vbCrlf representa un carácter de retorno de carro combinado con un carácter de avance de línea para las funciones de impresión y visualización.<br />
Por último, como el control textbox1 no lo estoy creando en modo diseño (arrastrando el control y soltandolo sobre el formulario) sino, que lo creo mediante codigo, no podré verlo a menos que lo agregue a la lista de control del formulario. Para ello utilizo la última linea del codigo del ejemplo.</p>
<pre class="brush: vb;">
   Dim textbox1 As New TextBox
textbox1.Multiline = True
textbox1.Dock = DockStyle.Fill
textbox1.ScrollBars = ScrollBars.Vertical
textbox1.Font = New System.Drawing.Font(&quot;Courier New&quot;, 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
For i As Integer = 1 To 100
    textbox1.Text &amp;= i.ToString.PadLeft(4).PadRight(10, &quot;-&quot;) &amp; &quot;Es la mitad de &quot; &amp; (i * 2).ToString.PadLeft(3) &amp; vbCrLf
Next
Me.Controls.Add(textbox1)
</pre>
<p>Dando formato a los números</p>
<p>Utilizando la clase String podemos dar formato a los numeros, como se muestra en el siguiente ejemplo:</p>
<pre class="brush: vb;">
Dim numero As Double
numero = 10580.65
Dim resultado As String

resultado = numero.ToString(&quot;G&quot;) '               10580.65
resultado = numero.ToString(&quot;N&quot;) '              10.580,65
resultado = numero.ToString(&quot;E&quot;) '           1058065E+004
resultado = numero.ToString(&quot;000,000.00&quot;) '    010.580,65
resultado = numero.ToString(&quot;###,##0.00&quot;) '     10.580,65

numero = 0.63
resultado = numero.ToString(&quot;P&quot;) '                63,00 %
resultado = numero.ToString(&quot;##0.00%&quot;) '           63,00%
resultado = numero.ToString(&quot;##0%&quot;) '                 63%
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.solovb.net/index.php/2009/02/01/la-clase-system-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
