<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8881373703754898650</id><updated>2011-04-21T10:47:50.353-07:00</updated><category term='Validación'/><category term='C#'/><category term='Errores'/><category term='Access 2007'/><category term='Sun'/><category term='Microsoft'/><category term='SQL'/><category term='Controles'/><category term='tecnología'/><category term='Querys'/><category term='Access 2003'/><category term='Formularios'/><category term='Windows'/><category term='Java'/><category term='WPF'/><category term='Google'/><category term='ListView'/><title type='text'>El Monote</title><subtitle type='html'>blog de tecnologías</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-2062397521987710179</id><published>2009-01-22T19:13:00.000-08:00</published><updated>2009-01-22T19:22:04.417-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><title type='text'>Java - MessageBox en Java</title><content type='html'>Hola, después de algunos días sin postear y de haber hecho un regreso al mundo de Java y de haber batallado un tanto para poder utilizar algo parecido a un MessageBox.Show() de C# ( que comparte muchas similitudes con Java) encontré una forma de utilizar algunas ventanas de diálogos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(153, 0, 0);"&gt;  import javax.swing.JOptionPane;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(153, 0, 0);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(153, 0, 0);"&gt;  public class HolaBatman&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: courier new; color: rgb(153, 0, 0);" class="answerBody quoted" id="EchoTopic"&gt;  {   &lt;br /&gt;          public static void main(String[] args)&lt;br /&gt;         {&lt;br /&gt;                 JOptionPane.showMessageDia&lt;wbr&gt;log( null, "Hola, Batman.",&lt;br /&gt;                 "JOptionPane/Ejemplo de MessageDialog",&lt;br /&gt;                 JOptionPane.INFORMATION_ME&lt;wbr&gt;SSAGE );&lt;br /&gt;         }   &lt;br /&gt;  }&lt;/div&gt;Y aquí el meollo de todo el asunto, viene siendo la primera línea, el import javax.swing.JOptionPane, de manera que nos provea de la funcionalidad que requerimos para crear nuestros message boxes. Las otras opciones que ví, pueden llevar algunas decenas de líneas de código, por lo que creo que esta es de las más prácticas.&lt;br /&gt;&lt;br /&gt;¡Saludos y feliz programación!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-2062397521987710179?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/2062397521987710179/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=2062397521987710179&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/2062397521987710179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/2062397521987710179'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2009/01/java-messagebox-en-java.html' title='Java - MessageBox en Java'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-2590445510541996770</id><published>2008-12-21T22:34:00.000-08:00</published><updated>2008-12-22T10:05:42.825-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#: Reestablecer directorio de aplicacion de escritorio</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;En C#, cuando usamos el OpenFileDialog o el SaveFileDialog, el directorio de nuestra aplicación se modifica, tomando el path del archivo abierto o guardado, haciendo que la aplicación de ahí en delante intente buscar nuestra base de datos (o cualquier archivo consumido desde el path de la aplicación) sea imposible de acceder. Para esto basta con poner la propiedad RestoreDirectory del objeto SaveFileDialog o del objeto OpenFileDialoga a true:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new; color: rgb(0, 153, 0);"&gt;SaveFileDialog _saveFileDialog = new SaveFileDialog();&lt;br /&gt;            string _filePath;&lt;br /&gt;&lt;br /&gt;            _saveFileDialog.Filter = "DataBase (*.mdb)|*.mdb";&lt;br /&gt;            _saveFileDialog.OverwritePrompt = true;&lt;br /&gt;            _saveFileDialog.RestoreDirectory = true;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Y con esto es más que suficiente para poder seguir trabajando felizmente.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;¡Saludos y feliz programación!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-2590445510541996770?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/2590445510541996770/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=2590445510541996770&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/2590445510541996770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/2590445510541996770'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2008/12/c-reestablecer-directorio-de-aplicacion.html' title='C#: Reestablecer directorio de aplicacion de escritorio'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-6142984191493296255</id><published>2008-12-02T22:36:00.000-08:00</published><updated>2008-12-02T22:57:38.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tecnología'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Desktop: Gmail en tu escritorio</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RTwzJjF8K30/STYtDc-v5kI/AAAAAAAAABA/Tvqq4LloQDc/s1600-h/gdesktop_gmail.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 275px; height: 400px;" src="http://1.bp.blogspot.com/_RTwzJjF8K30/STYtDc-v5kI/AAAAAAAAABA/Tvqq4LloQDc/s400/gdesktop_gmail.png" alt="" id="BLOGGER_PHOTO_ID_5275453550853350978" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;   Una de las cosas que más me impresiona de Google es su visión para desarrollar e innovar en diferentes aspectos, desde la tecnología informática hasta la conservación ambiental. Recientemente he instalado &lt;a href="http://desktop.google.com/es/?utm_campaign=es&amp;amp;utm_source=es-ha-latam-mx-google&amp;amp;utm_medium=ha&amp;amp;utm_term=google%20desktop"&gt;Google Desktop&lt;/a&gt;, para poder usar la side bar que en lo personal me parece bastante atractiva. Una de las mejores prestaciones es poder acceder a Gmail directamente desde tu escritorio, todo esto mediante un &lt;a href="http://desktop.google.com/plugins/i/gmailgadget.html?hl=es"&gt;Gadget &lt;/a&gt;que hace funcionar tu Gmail de maravilla. En &lt;a href="http://desktop.google.com/plugins/i/gmailgadget.html?hl=es"&gt;este simple Gadget&lt;/a&gt; se encuentran todas las cosas más comunes que puedes hacer con Gmail, como enviar y recibir correos y seguir conversaciones, todo desde una pequeña y práctica ventana.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Afortunadamente existe una gama bastante amplia de aplicaciones para dicha barra, que pueden hacer nuestra estancia mucho más cómoda y placentera ante el ordenador. En la imagen, una captura de mi ordenador con algunos gadgets que considero útiles y que pueden ayudarme a aumentar mi productividad, como por ejemplo un bloque de notas y una lista de cosas por hacer, así como la bandeja de entrada de Gmail.&lt;/span&gt; Este Gadget se puede bajar &lt;a href="http://desktop.google.com/plugins/i/gmailgadget.html?hl=es"&gt;aquí&lt;/a&gt; mismo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Como se puede ver, se pueden lograr cosas interesantes configurando y personalizando la barra a gusto propio y con funciones bastante interesantes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;¡Saludos!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-6142984191493296255?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/6142984191493296255/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=6142984191493296255&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/6142984191493296255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/6142984191493296255'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2008/12/google-desktop-gmail-en-tu-escritorio.html' title='Google Desktop: Gmail en tu escritorio'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_RTwzJjF8K30/STYtDc-v5kI/AAAAAAAAABA/Tvqq4LloQDc/s72-c/gdesktop_gmail.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-7218074383715292217</id><published>2008-12-02T17:32:00.000-08:00</published><updated>2008-12-02T17:39:52.859-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Controles'/><category scheme='http://www.blogger.com/atom/ns#' term='ListView'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>WPF: Agregar columnas mediante programación</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;Este código nos permite agregar una columna a un listview, recibe como parámetros un string para el path del binding y un string para el header de la columna. Cabe destacar que puede configurarse una gran cantidad de cosas de nuestro ListView accediendo a sus propiedades. El código, como casi todo lo que hago, esta en &lt;span style="font-style: italic;"&gt;C#&lt;/span&gt;&lt;/span&gt;  &lt;span style="font-family: trebuchet ms;"&gt;por lo que si se requiere para VB, bastará hacer sus correspondientes adaptaciones.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;        &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: trebuchet ms;"&gt;private void&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt; AddColumn(&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: trebuchet ms;"&gt;string &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;_bindingPath, &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: trebuchet ms;"&gt;string &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;_header)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;            &lt;/span&gt;&lt;span style="color: rgb(0, 204, 204); font-family: trebuchet ms;"&gt;GridViewColumn &lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;_newColumn = &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: trebuchet ms;"&gt;new &lt;/span&gt;&lt;span style="color: rgb(0, 204, 204); font-family: trebuchet ms;"&gt;GridViewColumn&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;            _newColumn.DisplayMemberBinding = &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: trebuchet ms;"&gt;new &lt;/span&gt;&lt;span style="color: rgb(0, 204, 204); font-family: trebuchet ms;"&gt;Binding&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;(_bindingPath);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;            _newColumn.Header = _header;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;            myListView.Columns.Add(_newColumn);            &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;Y con esto es más que suficiente para poder agregar columnas a nuestro querido listview.&lt;br /&gt;&lt;br /&gt;¡Saludos y feliz programación!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-7218074383715292217?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/7218074383715292217/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=7218074383715292217&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/7218074383715292217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/7218074383715292217'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2008/12/wpf-agregar-columnas-mediante.html' title='WPF: Agregar columnas mediante programación'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-5519443420665605099</id><published>2008-11-27T16:25:00.000-08:00</published><updated>2008-11-27T16:33:56.042-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Validación'/><category scheme='http://www.blogger.com/atom/ns#' term='Formularios'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>WPF: Validar campo mientras se escribe</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CRICARD%7E1.ROD%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CRICARD%7E1.ROD%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CRICARD%7E1.ROD%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:85%;color:blue;"   &gt;&lt;span style="color: rgb(0, 0, 0);font-family:trebuchet ms;" &gt;Una de las cosas más comunmente utilizadas en la programación, es la validación de campos en un formulario, es decir, que ciertos campos solamente acepten datos de un tipo específico, por ejemplo, no quisieramos ver en un campo numérico un nombre o una cadena de texto. Para esta situación, basta con hacer la siguiente validación en nuestro campo de texto, en el evento PreviewKeyDown de WPF:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;&lt;span style="color: rgb(0, 0, 0);font-family:trebuchet ms;" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:10;color:blue;"   &gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:&amp;quot;;font-size:85%;"  &gt;&lt;/span&gt;&lt;span style="color: rgb(31, 73, 125);font-size:85%;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(31, 73, 125);font-size:85%;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;  &lt;span style="color: rgb(31, 73, 125);font-size:85%;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style="font-family: trebuchet ms;"&gt;&lt;span style=";font-size:100%;color:blue;"  &gt;private&lt;/span&gt;&lt;span style=";font-size:100%;" &gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; txtBox_PreviewTextInput(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43, 145, 175);"&gt;TextCompositionEventArgs&lt;/span&gt; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-family: trebuchet ms;"&gt;&lt;span style=";font-size:100%;" &gt;        {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-family: trebuchet ms;"&gt;&lt;span style=";font-size:100%;" &gt;                     &lt;span style="color:blue;"&gt;decimal&lt;/span&gt; val;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-family: trebuchet ms;"&gt;&lt;span style=";font-size:100%;" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-family: trebuchet ms;"&gt;&lt;span style=";font-size:100%;" &gt;                     &lt;span style="color:blue;"&gt;if&lt;/span&gt; (!&lt;span style="color:blue;"&gt;decimal&lt;/span&gt;.TryParse(e.Text, &lt;span style="color:blue;"&gt;out&lt;/span&gt; val))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-family: trebuchet ms;"&gt;&lt;span style=";font-size:100%;" &gt;                      {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-family: trebuchet ms;"&gt;&lt;span style=";font-size:100%;" &gt;                             e.Handled = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-family: trebuchet ms;"&gt;&lt;span style=";font-size:100%;" &gt;                      }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: trebuchet ms;" class="MsoNormal"&gt;&lt;span style=";font-size:100%;" &gt;        }&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:trebuchet ms;font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Y eso es todo&lt;/span&gt;, esto, simplemente no dejará que se capture ningún dato que no sea numérico. Para otro tipo de validación simplemente hay que cambiar el contenido del &lt;span style="font-style: italic;"&gt;if&lt;/span&gt; .&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;¡Saludos y feliz programación!&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-5519443420665605099?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/5519443420665605099/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=5519443420665605099&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/5519443420665605099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/5519443420665605099'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2008/11/wpf-validar-campo-mientras-se-escribe.html' title='WPF: Validar campo mientras se escribe'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-5375769540942107203</id><published>2008-11-11T17:00:00.000-08:00</published><updated>2008-11-11T17:07:28.456-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access 2003'/><category scheme='http://www.blogger.com/atom/ns#' term='Access 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Querys'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Access 2003, Access 2007: Obtener el último índice creado</title><content type='html'>Una de las limitaciones más grandes que tiene MS Access es precisamente su falta de capacidad para manejar Stored Procedures, en la aplicación en la que me encuentro trabajando actualmente, me vi en la necesidad de obtener el último índice de una tabla a la cual recientemente le había añadido un registro, cosa bastante sencilla y cortesía de mi compañero Carcaño:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;SELECT Max(Tabla.Campo) AS Alias&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;FROM Tabla;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lo cual en un snippet sería:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;SELECT Max(Student.student_id) AS MaxId&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;FROM Student;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con lo anterior, pueden hacer algunas cosas un poco más útiles con esa aberración llamada MS Access ... Y si estan trabajando con esa cosa, mi más sentido pésame :P&lt;br /&gt;&lt;br /&gt;!Saludos y feliz programación!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-5375769540942107203?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/5375769540942107203/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=5375769540942107203&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/5375769540942107203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/5375769540942107203'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2008/11/access-2003-access-2007-obtener-el.html' title='Access 2003, Access 2007: Obtener el último índice creado'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-6839586834390541024</id><published>2008-11-09T17:37:00.000-08:00</published><updated>2008-11-09T17:43:02.866-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Errores'/><title type='text'>Error "Se requiere una referencia a objeto"</title><content type='html'>Tal vez en alguna ocasión, como desarrolladores, se hayan topado con el dichoso error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Se requiere una referencia a objeto para el campo, método o propiedad no estáticos 'miembro'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;An object reference is required for the nonstatic field, method, or property 'member'&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Este error se debe a que &lt;/span&gt;&lt;/span&gt;"&lt;span style="color: rgb(51, 204, 0); font-style: italic;"&gt;para utilizar un campo, método o propiedad no estáticos debe crear en primer lugar una instancia de objet0 (extracto de la ayuda de MSDN&lt;/span&gt;" ) es decir, en algunas ocasiones puede suceder que estemos intentando acceder a un objeto, o utilizarlo sin antes haberlo instanciado, y ésto solo es posible si dicho objeto es del tipo "&lt;span style="color: rgb(51, 204, 0);"&gt;static&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;Por lo que la recomendación sería, cuando menos, asegurarnos que nuestos métodos sean estáticos, si es que no queremos hacer instancias de ellos (evidentemente, habría que hacer las consideraciones necesarias para poder definir el tipo de cada uno de nuestros métodos).&lt;br /&gt;&lt;br /&gt;¡Saludos y feliz programación! &lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-6839586834390541024?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/6839586834390541024/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=6839586834390541024&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/6839586834390541024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/6839586834390541024'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2008/11/error-se-requiere-una-referencia-objeto.html' title='Error &quot;Se requiere una referencia a objeto&quot;'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-7023596242257128029</id><published>2008-11-02T15:42:00.000-08:00</published><updated>2008-11-02T16:05:06.377-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Cómo habilitar hibernación en Windows Vista</title><content type='html'>&lt;span style="font-family: arial;"&gt;Una de las capacidades que a mi más me llaman la atención de los equipos portátiles es poder seguir trabajando por cualquier lado sin tener que consumir tiempo en arrancar el sistema operativo.  Hace tiempo que tuve que enviar mi portátil a servicio de garantía y al recogerlo, me llevé la desagradable sorpresa de que esta opción no estaba disponible. Googleando un poquito Microsoft nos dá la siguiente información:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table class="list ol"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="number"&gt;1.&lt;/td&gt;&lt;td style="font-family: arial;" class="text"&gt;Iniciar &lt;span style="font-weight: bold;"&gt;cmd, &lt;/span&gt;que en español tiene el horroroso nombre de &lt;span style="font-weight: bold;"&gt;símbolo de sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong class="uiterm"&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="font-family: arial;"&gt;&lt;td class="number"&gt;2.&lt;/td&gt;&lt;td class="text"&gt;Hacer click derecho en cmd, luego seleccionar  &lt;strong class="uiterm"&gt;Ejecutar como administrador&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="font-family: arial;"&gt;&lt;td class="number"&gt;3.&lt;/td&gt;&lt;td class="text"&gt;Cuando se lo pida Control de cuentas de usuario, haga clic en &lt;strong class="uiterm"&gt;Continuar&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="font-family: arial;"&gt;&lt;td class="number"&gt;4.&lt;/td&gt;&lt;td class="text"&gt;En el símbolo del sistema, escriba &lt;span class="userInput"&gt;powercfg.exe /hibernate on&lt;/span&gt; y presione Entrar.&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="font-family: arial;"&gt;&lt;td class="number"&gt;5.&lt;/td&gt;&lt;td class="text"&gt;Escriba &lt;span class="userInput"&gt;exit&lt;/span&gt; y presione Entrar para cerrar la ventana del símbolo del sistema. &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para deshabilitar la hibernación, será suficiente solamente cambier el parámetro de hibernate on por hibernate of, quedando de la siguiente manera&lt;br /&gt;&lt;br /&gt;4.- En el símbolo del sistema, escriba &lt;span style="font-weight: bold;"&gt;powercfg.exe/hibernate off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La única consideración que hay que tener en cuenta antes de habilitar la opción, es que Windows utiliza un archivo llamado Hiberfil.sys, cuyo tamaño es de, cuando menos, el tamaño de la memoria RAM del equipo.&lt;br /&gt;&lt;br /&gt;Creo que bien vale la pena el gasto de espacio en disco gracias a que las prestaciones de un inicio rápido (lo que la hibernación hace es volcar todo lo que hay en memoria y vaciarlo en el archivo, al iniciar de nuevo el tiempo utilizado es muy poco), además, el ahorro en energía es considerablemente significativo...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;¡Saludos!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-7023596242257128029?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/7023596242257128029/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=7023596242257128029&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/7023596242257128029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/7023596242257128029'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2008/11/cmo-habilitar-hibernacin-en-windows.html' title='Cómo habilitar hibernación en Windows Vista'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8881373703754898650.post-6381072789215157544</id><published>2008-11-01T12:11:00.000-07:00</published><updated>2008-11-01T14:37:42.862-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='tecnología'/><title type='text'>Comunicación entre formularios de WPF</title><content type='html'>Como el objetivo principal de este blog es proveer soluciones de código útiles para la comunidad developer, pues comienzo poniendo a disposición este pequeño codiguito que lo único que hace es la utilísima tarea de pasar datos, parámetros u objetos entre formularios de Windows Presentation Foundation.&lt;br /&gt;&lt;br /&gt;Para hacerlo, se requieren cuando menos dos formas o ventanas de WindowsForms de WPF; primero se debe tener claro cual de las formas será la "forma que llama" y cual será la forma que recibe; digamos:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 255, 51); font-style: italic;"&gt;frmSender&lt;/span&gt;:&lt;br /&gt;Es la forma encargada de llamar a la otra forma...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 255, 51); font-style: italic;"&gt;frmReceiver&lt;/span&gt;:&lt;br /&gt;Es la forma que se instancia por frmSender, o sea es quien RECIBE los datos...&lt;br /&gt;&lt;br /&gt;Ahora, la parte donde la magia sucede:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;//Cargar el constructor con el parámetro que se espera recibir...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;public frmReceiver(Tipo NombreDeLaVariable) //donde tipo puede ser int, string, etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt; MiVariable = NombreDeLaVariable //esto permite hacer cualquier manejo deseado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cabe destacar que debe crearse primero la modificación del constructor del frmReceiver, digamos como para que VS no se enoje al pasar a la siguiente parte:&lt;br /&gt;&lt;br /&gt;En frmSender, digamos en el evento que requiera disparar el dato hacia frmReceiver&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;public MiControl_MiEvento()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;//crear una nueva instancia del receiver&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;frmReceiver _frmReceiver = new frmReceiver(OrigenDelDato);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;//puede ser cualquier tipo de dato, siempre y cuando corresponda con el tipo de dato&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;//que está definido en el receiver&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;frmReceiver.Show();//muestra la nueva ventana&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;}&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;¡Y &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(0, 0, 0);"&gt; es todo! Esto es todo lo que se requiere para poder comunicar formularios en WPF...&lt;br /&gt;&lt;br /&gt;¡Saludos!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8881373703754898650-6381072789215157544?l=elmonote.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmonote.blogspot.com/feeds/6381072789215157544/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8881373703754898650&amp;postID=6381072789215157544&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/6381072789215157544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8881373703754898650/posts/default/6381072789215157544'/><link rel='alternate' type='text/html' href='http://elmonote.blogspot.com/2008/11/comunicacin-entre-formularios-de-wpf.html' title='Comunicación entre formularios de WPF'/><author><name>Monote</name><uri>http://www.blogger.com/profile/02535147253661062274</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
