作成日: 2013/09/18 最終更新日: 2013/10/15
文書種別
不具合
状況
修正済み
詳細
行/列のVisibleプロパティをFalseに設定して非表示の行/列を含む範囲をコピーすると、非表示の行/列もクリップボードにコピーされてしまいます。
回避方法
この問題はバージョン5.0.20133.361で修正されました。
修正版を適用しない場合は、PreviewKeyDownイベントで独自のコピー処理を実装して、Visible = Trueの行/列だけをコピーします。
◎サンプルコード (Visual Basic)
◎サンプルコード (C#)
修正版を適用しない場合は、PreviewKeyDownイベントで独自のコピー処理を実装して、Visible = Trueの行/列だけをコピーします。
◎サンプルコード (Visual Basic)
Private Sub _grid_PreviewKeyDown(sender As Object, e As KeyEventArgs)
Dim sb = New StringBuilder()
If e.Key = Key.C AndAlso (Keyboard.Modifiers And ModifierKeys.Control) > 0 Then
e.Handled = True
For r As Integer = _grid.Selection.TopRow To _grid.Selection.BottomRow
If Not _grid.Rows(r).Visible Then
Continue For
End If
For c As Integer = _grid.Selection.LeftColumn To _grid.Selection.RightColumn
If Not _grid.Columns(c).Visible Then
Continue For
End If
sb.Append(_grid(r, c))
If c = _grid.Selection.RightColumn Then
Continue For
End If
sb.Append(vbTab)
Next
sb.AppendLine()
Next
Clipboard.SetText(sb.ToString())
End If
End Sub
Dim sb = New StringBuilder()
If e.Key = Key.C AndAlso (Keyboard.Modifiers And ModifierKeys.Control) > 0 Then
e.Handled = True
For r As Integer = _grid.Selection.TopRow To _grid.Selection.BottomRow
If Not _grid.Rows(r).Visible Then
Continue For
End If
For c As Integer = _grid.Selection.LeftColumn To _grid.Selection.RightColumn
If Not _grid.Columns(c).Visible Then
Continue For
End If
sb.Append(_grid(r, c))
If c = _grid.Selection.RightColumn Then
Continue For
End If
sb.Append(vbTab)
Next
sb.AppendLine()
Next
Clipboard.SetText(sb.ToString())
End If
End Sub
◎サンプルコード (C#)
void _grid_PreviewKeyDown(object sender, KeyEventArgs e)
{
var sb = new StringBuilder();
if (e.Key == Key.C && (Keyboard.Modifiers & ModifierKeys.Control) > 0)
{
e.Handled = true;
for (int r = _grid.Selection.TopRow; r <= _grid.Selection.BottomRow; r++)
{
if (!_grid.Rows[r].Visible) continue;
for (int c = _grid.Selection.LeftColumn; c <= _grid.Selection.RightColumn; c++)
{
if (!_grid.Columns[c].Visible) continue;
sb.Append(_grid[r, c]);
if (c == _grid.Selection.RightColumn) continue;
sb.Append("¥t");
}
sb.AppendLine();
}
Clipboard.SetText(sb.ToString());
}
}
{
var sb = new StringBuilder();
if (e.Key == Key.C && (Keyboard.Modifiers & ModifierKeys.Control) > 0)
{
e.Handled = true;
for (int r = _grid.Selection.TopRow; r <= _grid.Selection.BottomRow; r++)
{
if (!_grid.Rows[r].Visible) continue;
for (int c = _grid.Selection.LeftColumn; c <= _grid.Selection.RightColumn; c++)
{
if (!_grid.Columns[c].Visible) continue;
sb.Append(_grid[r, c]);
if (c == _grid.Selection.RightColumn) continue;
sb.Append("¥t");
}
sb.AppendLine();
}
Clipboard.SetText(sb.ToString());
}
}
旧文書番号
80473