連番セル等

1)行番号の自動インクリメントについて

RowHeaderCellクラスのValueFormatプロパティの「行番号の表示」
機能を使うことでご希望の動作を実現できます。詳細については、
下記のヘルプをご参照くださいますようお願い申し上げます。

【製品ヘルプ 目次】
MultiRow for Windows Forms 7.0J
+MultiRow の使い方
+セル型
+行ヘッダ型セル (RowHeaderCell)

なお、その他のセル型で連番を表示する機能はございませんので、
ご了承くださいますようお願い申し上げます。

(2) 任意の列幅の自動調節について

誠に恐縮ではございますが、コントロールの幅に合わせて自動的に
列幅を調節できるのは、末尾の列に限定されております。

任意の列の幅を調節するには、コントロールのサイズ変更を検出し、
独自に列幅を変更するように実装する必要がありますので、
ご了承くださいますようお願い申し上げます。

(3) MultiRowのTagプロパティについて

Tagプロパティは標準のControlクラスの機能ですが、MultiRowでも
ご利用いただけます。

(4) DLLの配置について

MultiRowを構成する弊社製品のDLLを含む.NET FrameworkのDLLは、
アプリケーション構成ファイルを使うことで、任意のフォルダに
配置して、それをEXEから参照することができます。

詳細については、MSDNをご参照いただければと存じます。

(5) セルのドラッグ&ドロップ操作によるコピーについて

標準のControlクラスのドラッグ&ドロップ機能を使うことで、マウス操作に
よるセルの値のコピーを実現できると思います。

下記のサンプルコードをご参考にしていただけますでしょうか。

【サンプルコード】

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GrapeCity.Win.MultiRow;

namespace M160626001
{
public partial class Form1 : Form
{
private Point pos;

public Form1()
{
InitializeComponent();

// バージョンの確認
this.Text = gcMultiRow1.ProductVersion;

// イベントの設定
gcMultiRow1.MouseDown += new MouseEventHandler(gcMultiRow1_MouseDown);
gcMultiRow1.MouseMove += new MouseEventHandler(gcMultiRow1_MouseMove);
gcMultiRow1.DragOver += new DragEventHandler(gcMultiRow1_DragOver);
gcMultiRow1.DragDrop += new DragEventHandler(gcMultiRow1_DragDrop);
}

private void Form1_Load(object sender, EventArgs e)
{
// テンプレートの作成
Template template1 = Template.CreateGridTemplate(2);
(template1.Row.Cells["rowHeaderCell1"] as RowHeaderCell).ValueFormat = "%1%";

// MultiRowの設定
gcMultiRow1.AllowDrop = true;
gcMultiRow1.Template = template1;
gcMultiRow1.RowCount = 5;
for (var i = 0; i < gcMultiRow1.RowCount; i++)
{
gcMultiRow1.SetValue(i, 0, string.Format("A{0}", i));
gcMultiRow1.SetValue(i, 1, string.Format("B{0}", i));
}
}

void gcMultiRow1_MouseDown(object sender, MouseEventArgs e)
{
// Drag&Drop開始の準備
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
pos = e.Location;
pos.Offset(-SystemInformation.DragSize.Width / 2, -SystemInformation.DragSize.Height / 2);
}
}

void gcMultiRow1_MouseMove(object sender, MouseEventArgs e)
{
// Drag&Dropの開始
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
Rectangle rect = new Rectangle(pos, SystemInformation.DragSize);
if (rect.Contains(e.Location))
{
HitTestInfo htInfo = (sender as GcMultiRow).HitTest(e.Location);
if (htInfo.Type == HitTestType.Row)
{
(sender as GcMultiRow).DoDragDrop((sender as GcMultiRow).GetValue(htInfo.SectionIndex, htInfo.CellIndex), DragDropEffects.Copy);
}
}
}
}

void gcMultiRow1_DragOver(object sender, DragEventArgs e)
{
// Drag&Dropの許可
e.Effect = DragDropEffects.Copy;
}

void gcMultiRow1_DragDrop(object sender, DragEventArgs e)
{
// Drag&Drop処理
HitTestInfo htInfo = (sender as GcMultiRow).HitTest((sender as GcMultiRow).PointToClient(new Point(e.X, e.Y)));
if (htInfo.Type == HitTestType.Row)
{
(sender as GcMultiRow).SetValue(htInfo.SectionIndex, htInfo.CellIndex, e.Data.GetData(DataFormats.Text));
}
}
}
}

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください