Почему не там событие SelectedNodeChanged для Windows. Формы. TreeView?

Просто пересмотрев это, я сделал его немного более опрятным (хотя кто-то, кто полная бутылка на Прототип / 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');

40
задан I. J. Kennedy 6 February 2010 в 03:10
поделиться

2 ответа

В WinForms TreeView ничего нет. Чтобы процитировать MSDN для TreeView.AfterSelect :

Это событие не происходит, если узел не выбран. Чтобы обнаружить это событие, обработайте событие Control.MouseUp и проверьте свойство TreeNode.IsSelected.

Да, это отстой.

38
ответ дан 27 November 2019 в 01:50
поделиться

Нет ничего плохого в использовании AfterSelect .

Однако учтите, что он не сработает, если выбор очищен (если SelectedNode станет null ) Вместо этого вы можете обрабатывать MouseUp , как рекомендовано в документации .

10
ответ дан 27 November 2019 в 01:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: