画面外のセルでクリップボード操作を行うと例外が発生する
対象製品
El Tabelle for .NET
発生環境
v1.2.2004.0521 以前のすべてのアセンブリ
状況
修正済み
詳細
Sheet.AllowCellOverflow、Sheet.AllowClipboard プロパティを true に設定して、下記の手順を行うと例外が発生します。
1. 縦スクロールバーで画面最下部に移動して任意のセルを Ctrl + C でコピーします。
2. 縦スクロールバーで画面最上部に移動して任意のセルでダブルクリックします。
また、デザイナ画面でも同様の手順を行うと描画が異常になります。
1. 縦スクロールバーで画面最下部に移動して任意のセルを Ctrl + C でコピーします。
2. 縦スクロールバーで画面最上部に移動して任意のセルでダブルクリックします。
また、デザイナ画面でも同様の手順を行うと描画が異常になります。
回避方法
この現象はファイル バージョン v1.2.2004.0831 (HotFix) 以降のアセンブリで修正されています。
修正版は こちら からダウンロードできます。
また、次の操作を行うことで現象を回避できます。
一時的にセルのオーバーフロー表示を無効にし、かつ再描画を停止します。
[Visual Basic]
Private Sub Sheet1_DoubleClick(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Sheet1.DoubleClick
Sheet1.Redraw = False
Sheet1.AllowCellOverflow = False
End Sub
Private Sub Sheet1_EnterEdit(ByVal sender As Object, _
ByVal e As GrapeCity.Views.ElTabelle.EnterEditEventArgs) _
Handles Sheet1.EnterEdit
Sheet1.AllowCellOverflow = True
Sheet1.Redraw = True
End Sub
[C#]
private void sheet1_DoubleClick(object sender, System.EventArgs e)
{
this.sheet1.Redraw = false;
this.sheet1.AllowCellOverflow = false;
}
private void sheet1_DoubleClick(object sender, System.EventArgs e)
{
this.sheet1.AllowCellOverflow = true;
this.sheet1.Redraw = true;
}
修正版は こちら からダウンロードできます。
また、次の操作を行うことで現象を回避できます。
一時的にセルのオーバーフロー表示を無効にし、かつ再描画を停止します。
[Visual Basic]
Private Sub Sheet1_DoubleClick(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Sheet1.DoubleClick
Sheet1.Redraw = False
Sheet1.AllowCellOverflow = False
End Sub
Private Sub Sheet1_EnterEdit(ByVal sender As Object, _
ByVal e As GrapeCity.Views.ElTabelle.EnterEditEventArgs) _
Handles Sheet1.EnterEdit
Sheet1.AllowCellOverflow = True
Sheet1.Redraw = True
End Sub
[C#]
private void sheet1_DoubleClick(object sender, System.EventArgs e)
{
this.sheet1.Redraw = false;
this.sheet1.AllowCellOverflow = false;
}
private void sheet1_DoubleClick(object sender, System.EventArgs e)
{
this.sheet1.AllowCellOverflow = true;
this.sheet1.Redraw = true;
}
キーワード
ELTB03986
この文書は、以前は次のバグレポートIDで公開されていました : 4305