Я для себя пишу программу "Список должников". Делаю её ввиде веб-страницы, но вопрос о другом.
Допустим, мне надо добавить новую функцию. Скажем "Удалить должника".
Действия:
1) Добавить такую кнопку на тулбар
2) Написать обработчик события
private void toolRemoveDebter_Click(object sender, EventArgs e)
{
prepare_reload_RemoveDebter();
}
3)
private void prepare_reload_RemoveDebter()
{
webList.Navigate( "about:blank" );
_webList_navigate = 5;
}
4) В webList_Navigated добавить
else if ( _webList_navigate == 5 ) // remove debter
{
webList.Document.Write( _model.Debters.GetRemoveDebterPage() );
webList.Document.Body.GetElementsByTagName( "input" )[2].Focus();
_webList_navigate = 1;
}
5) В класс DebtersList добавить
public string GetRemoveDebterPage()
{
string result = _body +
"\n<!-- Remove debter -->\n" +
"\n<form name=web method=get action=\"Add://remove_debter\"><div style=\"background-color: #ffffff; padding-top: 12px;border-style:solid; border-width:1 0 0 0;border-color:black;" +
"padding-botton:3px;\">" +
"\n<span style=\"height: 23px; font-size: 120%\"><b>Удалить должника?</b> </span><BR>" +
"<input type=hidden name=res value=\"yes\">" +
" <input type=\"submit\" onclick=\"document.all.res.value='yes'\" value=\"Да\" /> <input type=\"submit\" onclick=\"document.all.res.value='no'\" value=\"Нет\" /></form>\n\n</body>";
return result;
}
6) В webList_Navigating добавить
else if ( e.Url.Host == "remove_debter" )
{
if ( webList.Document.Body.GetElementsByTagName( "input" )[0].GetAttribute( "value" )
== "yes" )
{
_model.Debters.Remove( _model.Debters.nCurrentDebter );
}
e.Cancel = true;
_model.SelectDebter( _model.Debters.Count - 1 );
prepare_reload_webList();
prepare_reload_webDebters();
webAddBar.Document.Body.GetElementsByTagName( "input" )[0].Focus();
}
7) теперь запускаю. проверяю. ага, работает. Но если удалить всех должников то там какая то трабл будет. но я этим еще займусь.
вот. и собственно вопрос. А 7 шагов это нормально? Все так делают? Нельзя ли это как то улучшить? А то вот допустим через полгода надо будет мне что-нибудь добавить и вспомню ли я всё это?