Top > プログラミング > .NET Tips> DataGridViewで選択されたセルをクリップボードにコピーできるようにする

DataGridViewで選択されたセルをクリップボードにコピーできるようにする」への評価、コメント

評価

良い / 悪い = 9 / 2 (「良い」の割合 = 0.818 , 人気度 = 0.852

評価する

コメント一覧


通常のコメント
管理人 2016/05/26 (Thu) 02:21:36
Excelに貼り付けると文字化けする問題について、私も調べてみました。その結果、いろいろ分かりましたので、記事を更新しました。情報をご投稿いただき、ありがとうございました。

通常のコメント
魔界の仮面弁士 2015/07/6 (Mon) 14:19:15
しおさんのご指摘が気になったので、手元の環境で確認してみました。
 
【Excel 2013でコピーした内容】
CF_HTML→Encoding.UTF8なHTMLフォーマット 
CF_UNICODETEXT→Encoding.Unicodeなタブ区切りテキスト 
CF_TEXT→Encoding.Defaultなタブ区切りテキスト 
CF_LOCALE→0x0411(日本語:ja) 
CF_OEMTEXT→Encoding.GetEncoding(932)なタブ区切りテキスト 
 
 
【GetClipboardContenメソッドの場合】
CF_HTML→Encoding.DefaultなHTMLフォーマット 
CF_UNICODETEXT→Encoding.Unicodeなタブ区切りテキスト 
CF_TEXT→Encoding.Defaultなタブ区切りテキスト 
CF_LOCALE→0x0411(日本語:ja) 
CF_OEMTEXT→バイナリデータの後ろにEncoding.GetEncoding(932)なタブ区切りテキスト 

通常のコメント
しお 2013/12/12 (Thu) 14:17:59
日本語は文字化けします

通常のコメント
管理人 2010/10/5 (Tue) 01:21:31
> pasteText = pasteText.TrimEnd(new char[] { '\n' });
> ではないでしょうか?

ご指摘、ありがとうございます。修正しておきます。

通常のコメント
kei 2010/10/4 (Mon) 11:53:10
12行目は
pasteText = pasteText.TrimEnd(new char[] { '\n' });
ではないでしょうか?

通常のコメント
.exey 2010/02/7 (Sun) 23:52:52
/*例文をもとに不定形に選択されたセルに連続的な貼り付けをできるコードを作りました*/
string[] lines = pasteText.Split('\n');
//ここまで例文どおり
int istartrow = -1;
int istartcol = -1;
//総当たりで選択されているセルを調べる
for (int irow = 0; irow < dataGridView1.RowCount; irow++)
{
for (int icol = 0; dataGridView1.ColumnCount > icol; icol++)
{
if (dataGridView1[icol, irow].Selected)
{
if (istartcol == -1) { istartcol = icol; istartrow = irow; }
//タブで行の内容の列を分ける
string[] vals = lines[(irow - istartrow) % lines.Length].Split('\t');
if (vals.Length > 0)
{
int i = icol - istartcol;
while (i < 0) { i = i + vals.Length; }
dataGridView1[icol, irow].Value = vals[(i) % vals.Length];
}
else { dataGridView1[icol, irow].Value = null; }
}
}
}

コメントの投稿

[説明]