【问题标题】:Spreadsheetgear column width changing event?电子表格列宽更改事件?
【发布时间】:2012-11-29 23:59:22
【问题描述】:

电子表格中是否有任何事件导致工作表列宽发生变化?当用户单击列分隔符并拖动它以更改其在工作表中的宽度时,我想执行一些操作。

当用户通过列标题更改列宽或从行标题更改行高时,我想要做的是显示一个小工具提示,指示列/行的宽度/高度。 Microsoft Excel 有这种行为,当我们更改列/行的宽度/高度时,我们可以看到列标题附近出现一个工具提示。

谢谢

【问题讨论】:

    标签: spreadsheetgear


    【解决方案1】:

    WorkbookView 类有一个名为 RangeChanged 的​​事件,该事件在用户更改列宽时触发。

    如果要在更改后捕获新的 ColumnWidth,则 RangeChangedEventArgs 参数具有该值。

    public void workbookView1_RangeChanged(object sender, RangeChangedEventArgs e)
    {
        ToolTip ttip = new ToolTip();
        ttip.Show(e.Range.ColumnWidth.ToString(), (SpreadsheetGear.Windows.Forms.WorkbookView)sender);
    }
    

    请务必将以下代码添加到您的设计器中。

      this.workbookView1.RangeChanged += new SpreadsheetGear.Windows.Forms.RangeChangedEventHandler(this.workbookView1_RangeChanged);
    

    【讨论】:

    • 您好丹尼尔,感谢您的回答。但是当用户从列标题更改列宽时,我没有看到 RangeChanged 事件触发。当用户通过列标题更改列宽或从行标题更改行高时,我想要做的是显示一个小工具提示,指示列/行的宽度/高度。 Microsoft Excel 有这种行为,当我们更改列/行的宽度/高度时,我们可以看到列标题附近出现一个工具提示。
    • 如果您没有看到它触发,请确保将事件连接到设计器中。我更新以使用该代码进行回答。
    • 我还添加了一些代码来显示带有列宽的工具提示。
    • 嗨丹尼尔,我的意思是,这个 RangeChanged 事件仅在我们更改列标题宽度后释放鼠标按钮时触发。但是当我们在释放鼠标之前连续拖动鼠标时不会触发。即当在列标题上按下鼠标并且我们移动鼠标(鼠标移动时列宽增加/减少)时,我想显示工具提示以显示连续变化的宽度。就像它发生在 excel 中一样。
    • 我明白了。您需要 RangeChanging 事件之类的东西,而不是 RangeChanged。我不知道 SSG 有这样的事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2014-04-18
    • 2014-05-14
    相关资源
    最近更新 更多