| ♥ 0 | Bom dia, sei que esta pergunta já é duplicada mas na anterior não houve respostas. https://developers.ila.cegid.com/forum/como-efectuar-na-customtab-o-clear-dos-varios-controles/ Necessito de saber de como efetuar clear dos vários controles que desenhados numa CustomTab , depois de gravar ou antes de criar um artigo. Basicamente estou a criar os artigos com as características errada quando crio dois artigos seguidos por exemplo. Isto acontece como não «limpa» com controlos assume sempre os dados do artigo anterior. Se alguem já tiver ultrapassado este problema agradeço ajuda. Obrigado.
Marked as spam |
| Private answer Ola bom dia obrigado pela ajuda, consegues controlar tambem quando clicamos no botão "Novo"? Ainda me falta isso... Marked as spam Comments Como assim? Limpar os controlos quando se carrega num botão? Basta chamar a função no evento do Click do botão O único evento que me parece dar é no "antes de criar", no entanto ele dispara antes do form estar aberto, como o objecto não existe dá erro e bem .... mas se existirem dados no custom tab, e clicas em novo, ele grava de forma errada os últimos dados carregados ...dai ter de limpar, no "depois de gravar", no "DepoisDeAnular" mas no novo não consegui controlar... | |
| Private answer A solução do @filipesantos é elegante, mas tenho uma outra opção. Eu gosto de ter "funções de suporte" que transporto de um projecto para outro e uma delas faz exactamente isso que precisa. public static class HelperFunctions
{
public static void LimpaControlos(Control container)
{
foreach (Control control in container.Controls) {
if (control is TextBox textBox) {
textBox.Text = "";
}
else if (control is CheckBox checkBox) {
checkBox.Checked = false;
}
else if (control.HasChildren) {
// Se o controlo tiver Children, corre a função para as children recursivamente
ClearTextBoxesAndCheckboxes(control);
}
}
}
}A este código é possivel adicionar quaisquer tipos de controlos. Eu trabalho mais com WinForms por isso não tenho de lidar muito com os controlos Primavera. No entanto, presumo que não seja dificil de os identificar e usar nesta função. HelperFunctions.LimpaControlos(customTab1); HelperFunctions.LimpaControlos(form1);
Marked as spam Comments Ola bom dia obrigado pela ajuda, consegues controlar tambem quando clicamos no botão "Novo"? Ainda me falta isso... | |
| Private answer Boa tarde, na dll onde cria a CustomTab deve declarar um método para limpar os controlos pretendidos. - Limpar uma textBox criada num CustomTab da ficha do artigo
Marked as spam |

