﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » WinForms (How do I?)  » PictureBox Error - BrokenRule</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Tue, 09 Jun 2026 10:41:01 GMT</lastBuildDate><ttl>20</ttl><item><title>PictureBox Error - BrokenRule</title><link>http://forum.strataframe.net/FindPost20216.aspx</link><description>Hi...&lt;/P&gt;&lt;P&gt;PictureBox is fixing the error icon after cancellation.&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://forum.strataframe.net/Uploads/Images/afbcc1ba-fa0e-4070-bb2c-69fc.jpg"&gt;</description><pubDate>Mon, 27 Oct 2008 08:54:38 GMT</pubDate><dc:creator>Rogerio Mauri</dc:creator></item><item><title>RE: PictureBox Error - BrokenRule</title><link>http://forum.strataframe.net/FindPost20370.aspx</link><description>Opa, Rogério, valeu pelas palavras.&lt;/P&gt;&lt;P&gt;Quanto ao local para checar seu Error Provider, não precisa ser no Click de seu menu, você pode capturar o SeuForm.AfterSave, por exemplo, ou o BusinessRulesChecked.</description><pubDate>Mon, 27 Oct 2008 08:54:38 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: PictureBox Error - BrokenRule</title><link>http://forum.strataframe.net/FindPost20369.aspx</link><description>Ok... &lt;/P&gt;&lt;P&gt;Não analisei o código fonte do StrataFrame, mas, pelo visto, a limpeza dos alertas de&amp;nbsp;erros é seletiva então. Se utilizar SetErrorProvider terei que forçar a limpeza.&lt;/P&gt;&lt;P&gt;Beleza... farei uma análise no código fonte do StrataFrame para entender como e em que ponto a limpeza é feita. Apenas não gostei de colocar a chamada de limpeza no método de click do item de menu. Não me pareceu muito sensato.&lt;/P&gt;&lt;P&gt;Valeu e, mais uma vez, obrigado...&lt;/P&gt;&lt;P&gt;------------------------&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Trent... &lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Solved problem. The support in Brazil is the best.&lt;/EM&gt;;)</description><pubDate>Mon, 27 Oct 2008 07:57:29 GMT</pubDate><dc:creator>Rogerio Mauri</dc:creator></item><item><title>RE: PictureBox Error - BrokenRule</title><link>http://forum.strataframe.net/FindPost20368.aspx</link><description>OK, entendi.&lt;P&gt;Bom, eu acho que se você está usando SetErrorProvider() manualmente para mostrar um erro, parece bastante sensato que tenha que usar um ClearErrorProvider() para se desfazer do mesmo. Inclusive, se você não quiser limpar todos os erros de uma vez com o ClearErrorProvider(), pode usar o SetErrorProvider() direto no controle:&lt;/P&gt;&lt;P&gt;[codesnippet]Me.&lt;FONT class=SearchHighlight style="BACKGROUND-COLOR: #ffffff"&gt;SetErrorProvider&lt;/FONT&gt;(Me.TextBox1, String.Empty)[/codesnippet]</description><pubDate>Mon, 27 Oct 2008 05:42:55 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: PictureBox Error - BrokenRule</title><link>http://forum.strataframe.net/FindPost20366.aspx</link><description>Ivan... Boa Noite...&lt;P&gt;Identifiquei que o problema não está relacionado com o campo tipo imagem, mas sim a qualquer campo onde o BindingField não é utilizado para popular o seu conteúdo.&lt;/P&gt;&lt;P&gt;Por exemplo... Considere a situação onde no banco de dados um campo 'tempo' está sendo arquivado como minutos e, na tela, tenho que converter esses minutos em dois campos distintos, um para as horas e outro para os minutos. &lt;/P&gt;&lt;P&gt;&lt;IMG src="http://forum.strataframe.net/Uploads/Images/a161992d-20c7-489e-b5c6-7a38.jpg"&gt;&lt;/P&gt;&lt;P&gt;Navegando nos registros do BO um método para popular os campos convertidos é invocado.&lt;/P&gt;&lt;P&gt;[codesnippet]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Lendo dados do BO&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void PopulaCampos()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //-- TempoExcedenteDiurno1 horas e minutos&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudTempoExcedenteDiurno1H.Value = tbHorarioPersonalizadoBO1.TempoExcedenteDiurno1Horas;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudTempoExcedenteDiurno1M.Value = tbHorarioPersonalizadoBO1.TempoExcedenteDiurno1Minutos;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //-- TempoExcedenteDiurno2 horas e minutos&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudTempoExcedenteDiurno2H.Value = tbHorarioPersonalizadoBO1.TempoExcedenteDiurno2Horas;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudTempoExcedenteDiurno2M.Value = tbHorarioPersonalizadoBO1.TempoExcedenteDiurno2Minutos;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //-- TempoExcedenteDiurno3 horas e minutos&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudTempoExcedenteDiurno3H.Value = tbHorarioPersonalizadoBO1.TempoExcedenteDiurno3Horas;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudTempoExcedenteDiurno3M.Value = tbHorarioPersonalizadoBO1.TempoExcedenteDiurno3Minutos;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;[/codesnippet]&lt;P&gt;Então, ao salvar o registro o BO faz a crítica dos campos correspondentes. Se há erro preciso tratá-los para redirecionar o ícone do erro para esses campos, pois eles não estão ligados aos campos do BO via BindingField. Se não fizer isso, o usuário não fica sabendo qual campo está com erro. O código para isso:&lt;P&gt;[codesnippet]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void tbHorarioPersonalizadoBO1_CheckRulesOnCurrentRow(CheckRulesEventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (BrokenRule loRule in tbHorarioPersonalizadoBO1.BrokenRules.ToArray())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (loRule.FieldName.EndsWith("TempoExcedenteDiurno2", StringComparison.OrdinalIgnoreCase))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetErrorProvider(nudTempoExcedenteDiurno2M, loRule.Description);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (loRule.FieldName.EndsWith("TempoExcedenteDiurno3", StringComparison.OrdinalIgnoreCase))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;[/codesnippet]&lt;P&gt;Se há erro, beleza... O ícone do erro aparece na tela. No entanto, ao clicar em [Desfazer] e mesmo após isso, navegando nos registros, o ícone de alerta do erro permanece sobre o campo.&lt;P&gt;&lt;IMG src="http://forum.strataframe.net/Uploads/Images/0e74ba02-8ab1-40b3-a32a-657a.jpg"&gt;&lt;P&gt;Para resolver isso, tive que forçar um "CleanErrorProvider()" quando o usuário pressiona um item do menu que não seja o botão Salvar. Veja o código abaixo:&lt;P&gt;[codesnippet]&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void MaintenanceFormToolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.ClickedItem.ToString().ToUpper() != "SALVAR")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClearErrorProvider();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;[/codesnippet]&lt;P&gt;Não acho que essa seja a maneira mais adequada de tratar isso.&amp;nbsp;:D&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description><pubDate>Sun, 26 Oct 2008 17:32:33 GMT</pubDate><dc:creator>Rogerio Mauri</dc:creator></item><item><title>RE: PictureBox Error - BrokenRule</title><link>http://forum.strataframe.net/FindPost20225.aspx</link><description>Hi Rogerio.&lt;P&gt;I haven't been able to reproduce an error on a picturebox, or maybe I didn't understand how you are getting it. One thing that might help is for you to use a Try... Catch command to get your picture, something like this:&lt;/P&gt;&lt;P&gt;[codesnippet]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Establish locals&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim loDialog As New OpenFileDialog()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim loImage As System.Drawing.Image&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Set the properties on the dialog&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loDialog.Multiselect = False&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loDialog.Filter = "Images(*.bmp,*.jpg,*.png,*.gif)|*.bmp;*.jpg;*.png;*.gif"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Show the dialog&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If loDialog.ShowDialog = Windows.Forms.DialogResult.OK Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Try to open the image&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loImage = System.Drawing.Image.FromFile(loDialog.FileName)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Set the image on the record, if you want to&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.MyBO1.myb_Picture = CType(loImage, System.Drawing.Bitmap)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Set the picture box as well&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.PictureBox1.Image = loImage&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- take care of the exception, if you need&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;[/codesnippet]&lt;/P&gt;&lt;P&gt;Let me know if it helps. ;)&lt;P&gt;PS: caso você não tenha pego a idéia em inglês, dá um toque e eu traduzo.</description><pubDate>Mon, 20 Oct 2008 11:40:34 GMT</pubDate><dc:creator>Ivan George Borges</dc:creator></item><item><title>RE: PictureBox Error - BrokenRule</title><link>http://forum.strataframe.net/FindPost20223.aspx</link><description>Ivan... Vou precisar do seu habilidoso inglês.&lt;/P&gt;&lt;P&gt;No caso em tela quando há um erro na captura de uma imagem o ícone de alerta é exibido no campo tipo PictureBox, como em qualquer outro campo textbox, por exemplo. O que ocorre é que após cancelar a inclusão, ou mesmo após a correção do problema, o ícone de alerta de erro&amp;nbsp;(seta) fica aparecendo&amp;nbsp;sobre o campo PictureBox. &lt;/P&gt;&lt;P&gt;Abraços...</description><pubDate>Mon, 20 Oct 2008 10:28:02 GMT</pubDate><dc:creator>Rogerio Mauri</dc:creator></item><item><title>RE: PictureBox Error - BrokenRule</title><link>http://forum.strataframe.net/FindPost20220.aspx</link><description>I'm sorry, I don't quite understand your scenario.&amp;nbsp; I see that you have a broken rule bound to your image, but I don't understand what you mean in regards to cancellation or how to setup the scenario you are running into.&amp;nbsp; I will need more details to offer any advice.</description><pubDate>Mon, 20 Oct 2008 09:10:39 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item></channel></rss>