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あげときました。