C#のDataGridViewでセル単位の設定ができるか

このQ&Aのポイント
  • C#のDataGridViewは、セル単位で書式やセルのスタイルを指定することはできますか?
  • たとえば、セル(1,1)はボタンのスタイル、セル(2,1)はテキストボックスのスタイルで背景色は黄色、などです。
  • そもそも、DataGridViewは列単位で設定し、その設定の行をたくさん生成するコントロールだと思うのですが、同じ列でも1行目と2行目で設定を変えたいのです。
回答を見る
  • ベストアンサー

C#のDataGridViwのセル単位の設定

C#のDataGridViewは、セル単位で書式やセルのスタイルを指定することはできますか? たとえば、セル(1,1)はボタンのスタイル、セル(2,1)はテキストボックスのスタイルで背景色は黄色、などです。 Grapecityのスプレッドだと、デザイナで開いてセル単位の設定ができるのですが、DatagridViewはそういう設定ってできたでしょうか。 そもそも、DataGridViewは列単位で設定し、その設定の行をたくさん生成するコントロールだと思うのですが、同じ列でも1行目と2行目で設定を変えたいのです。 DataGridViewを継承したカスタムコントロールを作って、セルのプロパティを実装するとかも厳しいですよね…(書いてる自分は無理じゃないかと思っています…)

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

デザイナで設定できたかという部分については微妙ですが、そのものズバリのDataGridViewCellというクラスがいるので少なくともプログラムレベルではセル単位で設定可能です。

lovesens
質問者

お礼

ご回答ありがとうございます。 DataGridViewCellのメンバStyleが設定・取得ともにできるみたいですね。 カスタムコントロールを作らなくても、プログラムで直接いじるだけでいけそうな気がしてきました。 また詰まったらご相談させていただくこともあると思いますがよろしくお願いいたします。

関連するQ&A

  • DataGridView、1セルに複数コントロール

    Microsoft Visual C# 2005 Express Edition(.NET2.0)を使っています。※WinApp DataGridViewコントロールの1セルに、複数コントロールを設定する方法を模索しています。 この方法をしたい理由としては、 ・行の並び替えができる。 ・行の絞り込み(フィルター)できる。 ということからDataGridViewコントロールを使おうと考えております。 しかしながら、DataGridViewコントロールのセルには、数値や文字、1イメージ、1ボタンなど、各1つしか配置できません。 ここに、複数のコントロール(ボタンやチェックボックスなど)を配置したいのです。 コントロールをカスタマイズすれば、できるかもしれませんが、方法が分かりません。 かなり無茶な質問ですが、 どなたかご存じで有れば、ご教授よろしくお願いします。

  • DataGridViewに空白がある場合はエラーにしたい

    よろしくお願いします。VB2005とAccess2005で開発しています。 Form上にDataGridViewを配置しています。 列の一番右端の入力をし終えて、次の新しい行に移動する前に、入力し終えた行に空白のセルがあったらエラーを返したい(空白があります、メッセージを表示したい)のですが、どのような処理を書いたらよいのかわからず悩んでいます。 ちなみにこのDataGridViewはエンターキーで横移動するようなDataGridViewを継承したユーザーコントロールです。 参考サイト→http://www.vbstation.net/tips/inherits_control.htm 一番右端の列を入力し終えたときにどのような処理を行えば良いか教えてください。

  • C# DataGridView特定セルの入力フォーム変更について

    C# DataGridView特定セルの入力フォーム変更について C# DataGridViewについての質問です。 DataGridViewで1列目のコンボボックスを選択した値によって、その行のみ 2列目の入力フォームを変更したいのですが、その様なことは可能でしょうか? 例.1行目1列目コンボボックス「a」選択時、1行目2列目コンボボックス表示   2行目1列目コンボボックス「b」選択時、2行目2列目テキストボックス表示   3行目1列目コンボボックス「c」選択時、3行目2列目チェックボックス表示 列全体の入力フォームを変更する処理なら分かるのですが、特定のセルのみ変更する 方法が分かりません。 もし可能であれば実現方法も教えて頂けると非常に助かります。 宜しくお願いします。

  • Excelのセルをミリ設定する

    VB.netで作成したアプリから、Excel(Excel2010)へ必要な情報を出力し、帳票を作成しているのですが、VB.netで作成したアプリから、セルの[列の幅]、[行の高さ]をミリ単位で設定し帳票を作成したいと考えております。セルの[列の幅]、[行の高さ]はピクセル単位での設定になると言われたのですが、ミリ単位で設定する事は可能なのでしょうか。 どなたか、分かる方がいらっしゃいましたら、ご教授お願い致します。 ※帳票イメージとしては添付画像のような帳票となります。

  • DataGridViewのセルのItem設定につい

    DataGridView内にコンボボックスのカラムを設定しました。 下記のサイトを参考にしました。 http://dobon.net/vb/dotnet/datagridview/comboboxdropdownstyle.html 入力した内容をカラム単位ではなく、セル単位で追加したかったため、 CellValidatingメソッドを下記の通り一部変更しました。 //CellValidatingイベントハンドラ private void DataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { DataGridView dgv = (DataGridView)sender; //該当する列か調べる if (dgv.Columns[e.ColumnIndex].Name == "sComboColumn" && dgv.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn) { //DataGridViewComboBoxColumn cbc = // (DataGridViewComboBoxColumn)dgv.Columns[e.ColumnIndex]; // // ↓cellへ変更 // DataGridViewComboBoxCell cbc = (DataGridViewComboBoxCell)dgv.Rows[e.RowIndex].Cells[e.ColumnIndex]; //コンボボックスの項目に追加する if (!cbc.Items.Contains(e.FormattedValue)) { cbc.Items.Add(e.FormattedValue); } //セルの値を設定しないと、元に戻ってしまう dgv[e.ColumnIndex, e.RowIndex].Value = e.FormattedValue; } } コンボボックスに入力し、EnterやTabを押したタイミングでコンボボックスのリストに、 入力した文字列が追加されます。また、入力した文字列がセルに表示された状態になります。 しかし、その後同じセルに文字列を入力した場合、リストに文字列が追加されますが、 セルに表示される文字列はその前に入力された文字列のままです。 どのようにすれば入力後のセルの内容を設定できるかご存じの方がいれば ご教授いただきたいです。

  • コントロールの継承

    VisualBasic2013を利用してシステム開発を行っております。 DataGridViewを継承したユーザーコントロールを作成しようと考えております。 実装したい事としては ・指定したフォント(MeiryoUI)にしておきたい ・行の色を水色にしておきたい ユーザーコントロールを作成して継承するところまでは 実装できているのですが、上記のようにプロパティの値をセットする 方法が分らず困っておりました。 普通にDataGridViewをフォームに配置する場合は 以下のように指定できておりました。 '/ フォントの指定 Me.DataGridView1.ColumnHeadersDefaultCellStyle.Font = New Font("Meiryo UI", 9) '全ての行の背景色を水色にする Me.DataGridView1.RowsDefaultCellStyle.BackColor = Color.AliceBlue どなたかご教授頂けますと幸いです。

  • DataGridViewのセル単位に画像をドラッグ&ドロップ

    VB2005を使用しています。 DataGridViewを使用して [画像A][画像B][画像C]と3列のImageセルを用意しました DataGridView上に画像をD&Dしてきたときに DataGridViewとしてのD&Dイベントは取れるのですが 画像Aの上で、画像Bの上でD&Dされた みたいに個別でとる方法がわかりません。 個別のセル単位でD&Dイベントを取ることは可能でしょうか・

  • Visual C# の DataGridViewの行や列を増やすにはどうすればいいんでしょうか

    こちらであってるかどうかも分かりません超初心者です。 Visual C# のコントロールの一つ DataGridViewを使いたいんですが、 普通に行や列を増やすのはできるんですが、 例えば適当なテキストボックスに 4 と 7 を記入したら 4行7列の DataGridViewを作りたいと考えているんですが、どうやればいいのかまったく分かりません。 ネットで調べてもどうすればいいか分かりません ご存じの方どうか教えてください、よろしくお願いします

  • DataGridViewで列、行、セルの選択

    [環境] Windows7 Professional Visual Studio 2010 Professional お世話になります。 上記環境下にて、DataGridViewを用いたプログラムを 作っております。 そこで、タイトルの件なのですが DataGridViewの一番左(行ヘッダー)をクリックすると行選択、 一番上(列ヘッダー)をクリックすると列選択、 セルをクリックするとセル選択できるようにしたいと思っています。 しかし、DataGridViewのセル選択はSelectionModeという プロパティで制御しているようでして、以下の5種類の選択方法しかないようです。 (1) CellSelect 1 つ以上の個別のセルを選択できます。 (2) FullRowSelect 行のヘッダーまたは行内のセルをクリックすることによって行全体が選択されます。 (3) FullColumnSelect 列のヘッダーまたは列内のセルをクリックすることによって列全体が選択されます。 (4) RowHeaderSelect 行のヘッダー セルをクリックすることによって行が選択されます。個別のセルは、そのセルをクリックすることによって選択できます。 (5) ColumnHeaderSelect 列のヘッダー セルをクリックすることによって列が選択されます。個別のセルは、そのセルをクリックすることによって選択できます。 要するに、 (1)…セル選択のみ可能 (2)…行選択のみ可能(セルクリック時は行選択扱い) (3)…列選択のみ可能(セルクリック時は列選択扱い) (4)…行選択とセル選択のみ可能 (5)…列選択とセル選択のみ可能 ということなので、私の望む、 ・行選択と列選択とセル選択が可能 という制御は無理なのでしょうか。 ご存知の方いましたら、ご教示の程お願い致します。

  • DataGridViewで指定したセルに書き込み

    こんばんは。 VB2008のDataGridViewで指定したセルに書き込みをする方法はありますか? 例えば(2,1)と指定して1行目2列目に「Hello」と書き込む感じです。 どなたか知っている人が教えてください。

専門家に質問してみよう