TabControl
имеет коллекцию TabPages , на каждой из которых вы можете включить проверку, например, :
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
foreach (var page in _tabControl.TabPages.Cast())
{
page.CausesValidation = true;
page.Validating += new CancelEventHandler(OnTabPageValidating);
}
}
void OnTabPageValidating(object sender, CancelEventArgs e)
{
TabPage page = sender as TabPage;
if (page == null)
return;
if (/* some validation fails */)
e.Cancel = true;
}
}
Объект ошибки, который создается, когда JavaScript генерирует ошибку, очень ненадежен, когда речь идет о строке исходного кода, особенно в IE. Браузеры, такие как Firefox и Safari, лучше справляются с номерами строк, но, как правило, они бессмысленны из-за минификации файлов.
Очевидно, что более полезно получить стек вызовов, но из-за анонимного характера функций JavaScript (ну, что они могут быть анонимными) стек вызовов часто бывает сложно обработать.
Если вы выполняете try / catch
, вы можете выполнить arguments.callee
, который вернет вы - метод, который вызвал текущий метод, который потерпел неудачу.
Вот хороший пример выполнения полного стека в JavaScript - http: // eriwen. com / javascript / js-stack-trace /
Кроме того, инструменты разработчика, включенные в Internet Explorer 8 , неплохо отслеживать и отладьте свой код javascript
Существует версия Firebug под названием Firebug Lite , которая будет работать с Internet Explorer. Его производительность будет зависеть от сложности ваших страниц; однако для относительно легких страниц он должен дать некоторое представление.
Я рекомендую этот инструмент, а не просто использовать Firebug и Firefox , потому что не все ошибки, возникающие в Internet Explorer, будут возникать в Firefox , и поэтому выполнение любая отладка в этом браузере может не дать результатов.
Firebug в Firefox обычно считается одним из лучших инструментов отладки.
В Firefox перейдите на
, чтобы получить его.
]Это напечатает трассировку стека:
function Stack()
{
try
{
throw Error()
}
catch(ex)
{
return ex.stack
}
};
print( Stack() );
Если все остальное терпит неудачу (а иногда бывает при работе с IE), вы всегда можете просмотреть свой код с предупреждениями. Это грубо и утомительно, но иногда это все, что вы можете сделать: Просто:
var count = 0;
затем посыпьте немного:
alert(count++);
в стратегических строках вашего кода и отметьте, где он перестает сигнализировать.
Пена и полоскание повторять, пока у вас не будет ваша строка.
Если вы используете Firefox, вы можете нажать Ctrl + Shift + J
, чтобы открыть встроенную в Firefox консоль ошибок JavaScript, которая точно скажет вам, что пошло не так.