- PR -

DataGridについて教えて下さい。

1
投稿者投稿内容
まぐみ
会議室デビュー日: 2002/07/10
投稿数: 8
投稿日時: 2002-07-10 18:58
初めて書き込みをさせて頂きます。よろしくお願いします。

私は今、VB.NETをWindowsで開発しています。(Webではありません。)
そこでDataGridを使用しているのですが、
列が複数ある時に列ごとの幅を設定することができずに
悩んでいます。

すごく初歩的なことかもしれませんが、どなたか
ご存知の方がいらっしゃればよろしくお願いいたします。
NothingBut.NETFX
大ベテラン
会議室デビュー日: 2001/09/13
投稿数: 102
投稿日時: 2002-07-10 23:10
これが正しい方法なのかどうかわかりませんが、DataGridTableStyleを設定する方法があるようです。

コード:
private void button1_Click(object sender, System.EventArgs e)
{
	SqlDataAdapter da = new SqlDataAdapter(
		"SELECT EmployeeID, FirstName, LastName FROM Employees",
		"server=.;database=Northwind;uid=sa;pwd=sa");
	DataSet ds = new DataSet();
	da.Fill(ds, "Employees");
	dataGrid1.DataSource = ds;
	dataGrid1.DataMember = "Employees";

	DataGridTableStyle dgts = new DataGridTableStyle();
	dgts.MappingName = "Employees";

	DataGridColumnStyle TextCol0 = new DataGridTextBoxColumn();
	TextCol0.MappingName = "EmployeeID";
	TextCol0.HeaderText = "Employee Identification";
	TextCol0.Width = 250;
	dgts.GridColumnStyles.Add(TextCol0);

	DataGridColumnStyle TextCol1 = new DataGridTextBoxColumn();
	TextCol1.MappingName = "FirstName";
	TextCol1.HeaderText = "First Name";
	TextCol1.Width = 250;
	dgts.GridColumnStyles.Add(TextCol1);

	DataGridColumnStyle TextCol2 = new DataGridTextBoxColumn();
	TextCol2.MappingName = "LastName";
	TextCol2.HeaderText = "Last Name";
	TextCol2.Width = 250;
	dgts.GridColumnStyles.Add(TextCol2);

	dataGrid1.TableStyles.Add(dgts);
}


ご参考まで。
うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2002-07-10 23:25
NothingBut.NETFXさんのご回答の蛇足として、GUI上で設定する場合には、

1.DataGridのプロパティの中の「TableStyles」横の「...」ボタンをクリックする。
2.表示されるコレクションエディタで、「追加」ボタンを押し、新しいテーブルスタイルを追加する。
3.作成したテーブルスタイルの「MappingName」に割り当てるテーブル名を入力する。
4.GridColumnStylesの横の「...」ボタンをクリックする。
5.さらに表示されるコレクションエディタで、「追加」ボタンを押し、新しい列スタイルを作成する。
6.作成した列スタイルの「MappingName」で割り当てる列を選択する。
7.それ以下の「WIDTH」プロパティなどを割り当てる。

という流れで、GUI上で確認しながらの作業が可能です。

この場合、自動的に作成された列などはすべてクリアされ、すべて割り当てていかないといけないようです。
_________________
--------------------------------------
ネットビルド 小田原貴樹
odahara@netbuiuld.jp
--------------------------------------
まぐみ
会議室デビュー日: 2002/07/10
投稿数: 8
投稿日時: 2002-07-11 08:51
こんなに早くに回答を頂きまして感激しています。

教えていただいた方法で無事設定することができました。
NothingBut.NETFXさん、うりゅうさんには本当に感謝しています。

また何かわからないことができた時にはよろしくお願いします。
本当にありがとうございました!
Cycle
会議室デビュー日: 2002/05/31
投稿数: 9
お住まい・勤務地: 大阪
投稿日時: 2002-07-11 08:52
便乗質問なのですが、DataGridって、行高さをマウスで変更しようとして
ポインタを行の境界に持ってきてマウスポインタが上下移動の印に
変化したところで、ダブルクリックすると
ArgumentOutOfRangeExceptionが発生しますよね?
(必ずとういわけではなく、いくつかの行で試すと)
このせいで、DataGridは個人的に使い物にならないと考えているのですが、
使っていらっしゃる方々がいるということは
何かうまい回避方法があるのでしょうか?

ネタ元はここです。私の環境でも発生します。
http://www.dotnet247.com/247reference/msgs/15/78465.aspx


1

スキルアップ/キャリアアップ(JOB@IT)