C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: DataGridで...を表示しないようにするには?


(過去ログ 13 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■4048 / inTopicNo.1)  DataGridで...を表示しないようにするには?
  
□投稿者/ ハイフン (1回)-(2007/06/04(Mon) 22:48:40)

分類:[C# (Windows)] 

お世話になります。

DataGrid内にテキストを表示させたとき文字がセルのサイズを超えると自動的にEllipse(...)が表示されてしまいますが、表示しないようにするにはどうすれば良いのでしょうか?

AutoEllipsesみたいなプロパティがあるのでしょうか?

(単一行表示で行うことを前提とします。)

以上ご教授の程宜しくお願いします。


引用返信 編集キー/
■4069 / inTopicNo.2)  Re[1]: DataGridで...を表示しないようにするには?
□投稿者/ 魔界の仮面弁士 (292回)-(2007/06/05(Tue) 15:28:53)
No4048 (ハイフン さん) に返信
> 分類:[C# (Windows)]
> Ellipse(...)が表示されてしまいますが、
省略記号なら「ellipsis」では無いでしょうか。「ellipse」だと楕円ですし。

> 表示しないようにするにはどうすれば良いのでしょうか?
分類が(ASP.NET ではなく)Windows になっているところを見ると、
System.Windows.Forms.DataGrid ですよね。

.NET 1.1 および 2.0 環境で下記コードを試してみた限り、
当方では、三点リーダは表示されませんでしたよ。

---------------
using System;
using System.Data;
using System.Windows.Forms;
class Form1 : Form {
static void Main() { Application.Run(new Form1()); }
DataGrid dataGrid1 = new DataGrid();
DataTable dataTable1 = new DataTable();
public Form1() {
Controls.Add(dataGrid1);
dataGrid1.Dock = DockStyle.Fill;
dataTable1.Columns.Add("長いファイル名");
dataTable1.Rows.Add(new object[] { @"C:\Program Files\Microsoft SQL Server 2005 Mobile Edition\Samples\NorthwindOleDb\NorthwindOleDb.zip" } );
dataGrid1.DataSource = dataTable1;
}
}
---------------
引用返信 編集キー/
■4081 / inTopicNo.3)  Re[2]: DataGridで...を表示しないようにするには?
□投稿者/ ハイフン (2回)-(2007/06/05(Tue) 21:58:35)
No4069 (魔界の仮面弁士 さん) に返信
> ■No4048 (ハイフン さん) に返信
>>分類:[C# (Windows)]
>>Ellipse(...)が表示されてしまいますが、
> 省略記号なら「ellipsis」では無いでしょうか。「ellipse」だと楕円ですし。
>
>>表示しないようにするにはどうすれば良いのでしょうか?
> 分類が(ASP.NET ではなく)Windows になっているところを見ると、
> System.Windows.Forms.DataGrid ですよね。
>
> .NET 1.1 および 2.0 環境で下記コードを試してみた限り、
> 当方では、三点リーダは表示されませんでしたよ。
>
> ---------------
> using System;
> using System.Data;
> using System.Windows.Forms;
> class Form1 : Form {
> static void Main() { Application.Run(new Form1()); }
> DataGrid dataGrid1 = new DataGrid();
> DataTable dataTable1 = new DataTable();
> public Form1() {
> Controls.Add(dataGrid1);
> dataGrid1.Dock = DockStyle.Fill;
> dataTable1.Columns.Add("長いファイル名");
> dataTable1.Rows.Add(new object[] { @"C:\Program Files\Microsoft SQL Server 2005 Mobile Edition\Samples\NorthwindOleDb\NorthwindOleDb.zip" } );
> dataGrid1.DataSource = dataTable1;
> }
> }
> ---------------
有難うございます。

.NET 2.0になります。

DataGridではなくデフォルトのDataGridViewを使用していたのが問題だったということなのでしょうか?


引用返信 編集キー/
■4083 / inTopicNo.4)  Re[3]: DataGridで...を表示しないようにするには?
□投稿者/ 魔界の仮面弁士 (295回)-(2007/06/05(Tue) 23:44:34)
# 全文引用は避けてくださいませ。

■No4081 (ハイフン さん) に返信
> DataGridではなくデフォルトのDataGridViewを使用していたのが問題だったということなのでしょうか?

使用したことが問題というよりは、DataGridView について質問するときに、
誤って DataGrid だと書いていたことが問題かな…。


> 表示しないようにするにはどうすれば良いのでしょうか?

標準の表示が気に入らないのであれば、CellPainting イベントで好きなように描き換えてしまう、とか。(^_^;)

--------------

// 0列目の内容は 自分で描画する
if (e.ColumnIndex == 0)
{
    // セルが選択されているかどうか
    bool selected = DataGridViewElementStates.None
        != (e.State & DataGridViewElementStates.Selected);

    // セルの背景を塗りつぶす
    e.PaintBackground(e.ClipBounds, selected);

    // 描画するテキスト
    string text = (e.Value ?? String.Empty).ToString();

    // テキストの色
    Color color = selected ? e.CellStyle.SelectionForeColor : e.CellStyle.ForeColor;

    // テキストの配置など
    TextFormatFlags flags = TextFormatFlags.Default | TextFormatFlags.VerticalCenter;

    // 文字列の描画
    TextRenderer.DrawText(e.Graphics, text, e.CellStyle.Font, e.CellBounds, color, flags);

    // 描画処理を自分で行った場合は true
    e.Handled = true;
}

引用返信 編集キー/
■4122 / inTopicNo.5)  Re[4]: DataGridで...を表示しないようにするには?
□投稿者/ ハイフン (3回)-(2007/06/06(Wed) 23:46:26)
No4083 (魔界の仮面弁士 さん) に返信
>
> 標準の表示が気に入らないのであれば、CellPainting イベントで好きなように描き換えてしまう、とか。(^_^;)
>
うまく行きました。
有難うございます。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -