[ETMR05684]クリップボード操作がシートの表示モードに依存する

文書番号 : 22476     文書種別 : 制限事項     最終更新日 : 2006/08/31
文書を印刷する
対象製品
El Tabelle MultiRow 4.0J
発生環境
動作保証環境と同じ
詳細
MultiRowSheet.ViewMode プロパティを MRow または Column に設定しているとき、Excel でコピーしたセルまたはセル範囲を MultiRowSheet に貼り付けることができません。
Excel で行全体や列全体を選択しコピーした場合は、MultiRowSheet に貼り付けることができます。
回避方法
この現象は、製品の仕様によるものです。クリップボード操作は ViewMode プロパティの設定に依存します。たとえば、ViewMode プロパティを列単位に設定したとき、クリップボード操作も列単位で行う必要があります。

この制限を回避するには、クリップボード操作が行われる直前に MultiRowSheet.ViewMode プロパティを切り替えます。

[Visual Basic]
Private Sub Form1_Load(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles Form1.Load
  MultiRowSheet1.ViewMode = GrapeCity.Win.ElTabelle.MViewMode.MRow
  MultiRowSheet1.AllowClipboard = True
End Sub

Private Sub MultiRowSheet1_KeyDown(ByVal sender As Object, _
  ByVal e As System.Windows.Forms.KeyEventArgs) Handles MultiRowSheet1.KeyDown
  Dim objMultiRowSheet As GrapeCity.Win.ElTabelle.MultiRowSheet = _
    CType(sender, GrapeCity.Win.ElTabelle.MultiRowSheet)
  If e.Control = True Then
    If e.KeyCode = Keys.V Then
      objMultiRowSheet.Redraw = False
      'MultiRowSheet 内でコピーが行われたときのために、
      'UIPaste メソッドを2回実行します。
      objMultiRowSheet.UIPaste()
      objMultiRowSheet.ViewMode = GrapeCity.Win.ElTabelle.MViewMode.Default
      objMultiRowSheet.UIPaste()
      objMultiRowSheet.ViewMode = GrapeCity.Win.ElTabelle.MViewMode.MRow
      objMultiRowSheet.Redraw = True
    End If
  End If
End Sub

[C#]
private void Form1_Load(object sender, EventArgs e)
{
  multiRowSheet1.ViewMode = GrapeCity.Win.ElTabelle.MViewMode.MRow;
  multiRowSheet1.AllowClipboard = true;
}

private void multiRowSheet1_KeyDown(object sender, KeyEventArgs e)
{
  GrapeCity.Win.ElTabelle.MultiRowSheet objMultiRowSheet =
    (GrapeCity.Win.ElTabelle.MultiRowSheet)sender;
  if(e.Control == true)
  {
    objMultiRowSheet.Redraw = false;
    //MultiRowSheet 内でコピーが行われたときのために、
    //UIPaste メソッドを2回実行します。
    objMultiRowSheet.UIPaste();
    objMultiRowSheet.ViewMode = GrapeCity.Win.ElTabelle.MViewMode.Default;
    objMultiRowSheet.UIPaste();
    objMultiRowSheet.ViewMode = GrapeCity.Win.ElTabelle.MViewMode.MRow;
    objMultiRowSheet.Redraw = true;
  }
}

この文書は、以前は次のFAQ IDで公開されていました : 6370