Просто пересмотрев это, я сделал его немного более опрятным (хотя кто-то, кто полная бутылка на Прототип / JavaScript, мог предложить улучшения?).
var TextAreaResize = Class.create();
TextAreaResize.prototype = {
initialize: function(element, options) {
element = $(element);
this.element = element;
this.options = Object.extend(
{},
options || {});
Event.observe(this.element, 'keyup',
this.onKeyUp.bindAsEventListener(this));
this.onKeyUp();
},
onKeyUp: function() {
// We need this variable because "this" changes in the scope of the
// function below.
var cols = this.element.cols;
var linecount = 0;
$A(this.element.value.split("\n")).each(function(l) {
// We take long lines into account via the cols divide.
linecount += 1 + Math.floor(l.length / cols);
})
this.element.rows = linecount;
}
}
Просто это звонит с:
new TextAreaResize('textarea_id_name_here');
В WinForms TreeView ничего нет. Чтобы процитировать MSDN для TreeView.AfterSelect :
Это событие не происходит, если узел не выбран. Чтобы обнаружить это событие, обработайте событие Control.MouseUp и проверьте свойство TreeNode.IsSelected.
Да, это отстой.
Нет ничего плохого в использовании AfterSelect
.
Однако учтите, что он не сработает, если выбор очищен (если SelectedNode
станет null
) Вместо этого вы можете обрабатывать MouseUp
, как рекомендовано в документации .