Version9以降、XtraGridのGridControlにてCtrl-Cを押下すると
セルのデータに加えて自動的にカラム名を付加するようになりました。
これ、リリースノートに記載されていたのを見た当初、便利〜とかいって
喜んでいたのですが、実際に使ってみると、なんとカラム名を付加するしない
っていう制御がまったくデフォルトでは用意されていません。(常にカラム名
が付加されます・・・)
こういうのって、切り替える事がデフォルトで出来ないと意味無いと思うんです。
ユーザによっては、カラム名が勝手に付加されると困る場合もあると思うので。
特に、グリッドを利用していて、常時AutoFilterRowを表示している場合
普通に使っていると、当然セルの値をCtrl-CでコピーしてAutoFilterRowに
貼り付けたりします。その際、カラム名が先頭行に付加されているから
AutoFilterRowにカラム名が貼り付いてしまいます。
だらだらと、不満を書いてしまいましたが、回避方法は以下のようにします。
GridView.GetHeadersTextメソッドをオーバーライドして何もしないようにする。
- Exclude Column headers from CopyToClipboard
処理的には、オーバーライドして何もしないようにしたらオッケイでした。
でも、この為だけに、継承コントロールを作成しないといけません。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using DevExpress.XtraGrid.Views.Grid;
namespace Samples {
public partial class CustomGridView : GridView {
public CustomGridView() {
InitializeComponent();
}
public CustomGridView(IContainer container) {
container.Add(this);
InitializeComponent();
}
protected override void GetHeadersText(StringBuilder sb) {
//
// nop.
//
}
}
}
なんか、腑に落ちないのでSuggestionあげときました。