連番セル等
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)); } } } }