作成日: 2022/01/21 最終更新日: 2022/02/24
文書種別
使用方法
詳細
ClipboardChangedイベントでクリップボードに設定されたデータを取得して、末尾の改行復帰コードを削除してから、改めてクリップボードに設定します。
なお、SPREADのClipboardChangedイベントは、他のコントロール上で行われたクリップボードコピー操作にも反応して発生するので下記のサンプルコードのように、その時点のアクティブコントロールがSPREADになっていることを確認してください。
◎サンプルコード(VB)
◎サンプルコード(C#)
なお、SPREADのClipboardChangedイベントは、他のコントロール上で行われたクリップボードコピー操作にも反応して発生するので下記のサンプルコードのように、その時点のアクティブコントロールがSPREADになっていることを確認してください。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' テストデータの設定
FpSpread1.ActiveSheet.ColumnCount = 5
FpSpread1.ActiveSheet.RowCount = 5
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
For j As Integer = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
FpSpread1.ActiveSheet.SetValue(i, j, String.Format("R{0}C{1}", i, j))
Next
Next
End Sub
Private Sub FpSpread1_ClipboardChanged(sender As Object, e As EventArgs) Handles FpSpread1.ClipboardChanged
' イベント発生の確認
Console.WriteLine("FpSpread1_ClipboardChanged")
' SPREADにフォーカスがある場合
If FpSpread1.ContainsFocus Then
' クリップボードデータの取得処理
Dim data As String = Clipboard.GetText()
If Not String.IsNullOrEmpty(data) AndAlso data.EndsWith(vbCrLf) Then
' 末尾の改行コードの削除
data = data.Trim()
Clipboard.SetText(data)
End If
End If
End Sub
' テストデータの設定
FpSpread1.ActiveSheet.ColumnCount = 5
FpSpread1.ActiveSheet.RowCount = 5
For i As Integer = 0 To FpSpread1.ActiveSheet.RowCount - 1
For j As Integer = 0 To FpSpread1.ActiveSheet.ColumnCount - 1
FpSpread1.ActiveSheet.SetValue(i, j, String.Format("R{0}C{1}", i, j))
Next
Next
End Sub
Private Sub FpSpread1_ClipboardChanged(sender As Object, e As EventArgs) Handles FpSpread1.ClipboardChanged
' イベント発生の確認
Console.WriteLine("FpSpread1_ClipboardChanged")
' SPREADにフォーカスがある場合
If FpSpread1.ContainsFocus Then
' クリップボードデータの取得処理
Dim data As String = Clipboard.GetText()
If Not String.IsNullOrEmpty(data) AndAlso data.EndsWith(vbCrLf) Then
' 末尾の改行コードの削除
data = data.Trim()
Clipboard.SetText(data)
End If
End If
End Sub
◎サンプルコード(C#)
public Form1()
{
InitializeComponent();
fpSpread1.ClipboardChanged += fpSpread1_ClipboardChanged;
}
private void Form1_Load(object sender, EventArgs e)
{
// テストデータの設定
fpSpread1.ActiveSheet.ColumnCount = 5;
fpSpread1.ActiveSheet.RowCount = 5;
for (int i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
for(int j = 0;j < fpSpread1.ActiveSheet.ColumnCount; j++)
{
fpSpread1.ActiveSheet.SetValue(i, j, String.Format("R{0}C{1}", i, j));
}
}
}
private void fpSpread1_ClipboardChanged(object sender, EventArgs e)
{
// イベント発生の確認
Console.WriteLine("fpSpread1_ClipboardChanged");
// SPREADにフォーカスがある場合
if (fpSpread1.ContainsFocus)
{
// クリップボードデータの取得処理
string data = Clipboard.GetText();
if (!string.IsNullOrEmpty(data) && data.EndsWith("¥r¥n"))
{
// 末尾の改行コードの削除
data = data.Trim();
Clipboard.SetText(data);
}
}
}
{
InitializeComponent();
fpSpread1.ClipboardChanged += fpSpread1_ClipboardChanged;
}
private void Form1_Load(object sender, EventArgs e)
{
// テストデータの設定
fpSpread1.ActiveSheet.ColumnCount = 5;
fpSpread1.ActiveSheet.RowCount = 5;
for (int i = 0; i < fpSpread1.ActiveSheet.RowCount; i++)
{
for(int j = 0;j < fpSpread1.ActiveSheet.ColumnCount; j++)
{
fpSpread1.ActiveSheet.SetValue(i, j, String.Format("R{0}C{1}", i, j));
}
}
}
private void fpSpread1_ClipboardChanged(object sender, EventArgs e)
{
// イベント発生の確認
Console.WriteLine("fpSpread1_ClipboardChanged");
// SPREADにフォーカスがある場合
if (fpSpread1.ContainsFocus)
{
// クリップボードデータの取得処理
string data = Clipboard.GetText();
if (!string.IsNullOrEmpty(data) && data.EndsWith("¥r¥n"))
{
// 末尾の改行コードの削除
data = data.Trim();
Clipboard.SetText(data);
}
}
}