• 締切済み

DataGridViewのセルに斜線を引くには?

VB初心者です。VisualBasic2008ExpressEditionを使用しています。 DataGridViewの特定のセルに右上がりの斜線を引きたいのですが、やり方が分かりません。ご教授いただけないでしょうか?

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

DataGridViewのカラムタイプのクラスの派生クラスを作成します DataGridViewTextBoxColumnなどDataGridViewColmunの派生クラス 作成した派生Columnクラスで使うCellクラスの派生クラスも作成します DatGridViewTextBoxCellなどDataGridViewCellの派生クラス 派生Columnクラスを myTextColumn 派生Cellクラスを myCell とします myTextColumnクラスに使うセル用の変数を定義します dim _myCell as myCell myTextColumnのNewプロシージャを定義します Public Sub New()   MyBase.New()   _myCell = new myCell()   Me.CellTemplate = _myCell End Sub myCellクラスのPaintメソッドをオーバーライドします Protected Overrides Sub Paint( と入力するとスケルトンを作成してくれます End Subの手前に Graphics.DrawLile( Pens.Blue, cellBounds.Left, cellBounds.Bottom, _     cellBounds.Right, cellBounds.Top) などと記述します 条件などが必要なら if文の追加、プロパティの追加などをしましょう 派生クラスの作成方法は プロジェクト > クラスの追加 > クラス名の入力 > OK 作成された .vbファイルにて Public Class myTextColumn End Class となっているコードを 派生元クラスをInheritsステートメントで指定します Public Class myTextColumn   Inherits DataGridTextBoxColumn End Class といった手順です

関連するQ&A

  • Excelのセルに斜線を引くマクロ

    Excel2007を使用しています。 画像のように,「印刷」シートと「データ」シートがあります。 画像のように,「印刷」シートのAO112~BZ112のセルを結合しています。 そのセルには,VLOOKUP関数で,「データ」シート10列目のデータを返すようにしています。 関数を見てもらえば分かるとおり, もし10列目にデータがなければ(VLOOKUPで値が0なら)””(空白)を返すようにしています。 以上のようなシートで,このセルにデータが無い場合, 画像のAO113~BZ113のように右上がりの斜線を引きたいのです。 もちろん,データが入っている場合は,斜線は消します。 マクロに関しては,まだまだ初心者のため, ほとんど分からないので,分かりやすく教えていただけませんでしょうか? お願いします。

  • DataGridViewで…

    初めまして、VB2005初心者のココと申します。 今、VB2005を使い開発しているのですが、詰まってしまいました。 初心者の為、くだらない内容かも知れませんが、ご教授よろしくお願いいたします。 セルに入力されたコードを元にDBから名称を抽出し、名称欄(セル)に表示するプログラムを作っています。 コードを入力し、セルからフォーカスが無くなった際に自動的に名称を表示させたいのですが、うまく表示されず、 現在は、別のセルから戻った後、フォーカスが移動されると表示されるような感じになってしまっています。 フォーカスが離れた際に、表示させればいいと思うのですが、どのようにすればいいのかよく分からず困っております。 今は、CellLeaveを使用しています。 Private Sub DataGridView1_CellLeave(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _ Handles DataGridView1.CellLeave 後、名称取得の際はこんな感じにしています。 名称取得(Val(DataGridView1(1, DataGridView1.CurrentCell.RowIndex).Value)) ※1がコードを入力する列になります。 よろしくお願いいたします。

  • セルの値によって隣のセルに斜線を自動で引く方法

    エクセル2007ですが、あるセルに数値を入力するのですが、その数値が0、または、空欄だった場合、そのセルの右隣の2セルに右上りの斜線を自動的に引かれる設定にしたいのですが、条件付き書式だと斜線が選べず困っております。 マクロやVBEでも結構ですが、何かいい方法があれば教えて頂けますか?

  • VB2005-DataGridView 起動時セルが必ず選択される

    VB2005を勉強しているものです。毎度お世話になりありがとうございます。 今回ですが、DataGridViewを使用したプログラムで、起動時は必ず一番上のセルが選択され、DataGridView1_SelectionChangedイベントが動いてしまい、都合悪いのです。選択されない方法はありませんか また選択されたセルの色が青になりますが、色の変更はできますか ご教授願います。よろしくお願いいたします。

  • VBのDATAGRIDVIEWについて

    環境VB.net 初心者です。教えていただきたのですが Datagridviewを使用しループ処理で全行の単価セル内に数字の0を追加したいのですが1行目のセルのみ値が追加されません。(2行以降は全て追加されます)コードは下記の通りです。 For CNT = 0 To マスタテーブルCNT マスタテーブルdatagridview("単価", CNT).Value = 0 Next ご教授お願いします。

  • VB2010のDataGridViewについて

    VB初心者です。 VisualBasic2010のDataGridViewの表示についての質問です。 DataGridViewは通常、行単位でデータを管理する形式になっていますが、 行と列を逆にして操作したいのです。 古いバージョンのVBではコントロール右上のマークをクリックするとタスクが出てきてそこで設定できるようなのですが、VB2010ではタスクの中の操作がなくなっています。 もし、VB2010でも設定する方法があるのでしたら教えてください。 古いバージョンのVBで行と列の入れ換えを行っているサイトがあるので参考までに↓ http://d.hatena.ne.jp/Yamaki/20091214/1260767140

  • DataGridViewのセル選択について

    VB2005でDataGridViewを用い、編集できるセルと編集できないセルを設けています。 編集できないセルは、セルの選択自体出来ないようにしたいのですが、 そのようなことは可能なのでしょうか? タブキーで移動した場合も、入力不可としているセルを飛ばして移動したいのです。 ぜひお教えください。 よろしくおねがいいたします。

  • VB2005ーDataGridViewの選択されたセルの色

    VB勉強中で、何度も申し訳ございません。 DataGridViewの選択されたセルの色がノーマルでは、「点線囲いの青色」になっていますが、ちょっと邪魔なので、透明もしくは、表示させないようにすることってできますか。 DataGridView1.ForeColor = Color.Empty だと無反応 DataGridView1.ClearSelection() だと「点線囲い」だけが残ります。 ご教授願います。よろしくお願いいたします。

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

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

  • エクセル セル内に斜線をいれたいのですが。

    体重表を作って毎日記録しているのですが、記録を忘れてしまった 日などセル内に斜線をいれたいのですが(/)セル内の右上の角から 左下の角まで斜線をいれたいのに「斜線」と入力すると/は出てくる けれど、セル内の真ん中に斜線が小さくはいるだけでセル内 いっぱいには入力する事ができません。 どうするばセル内いっぱいに斜線を引く事ができるのでしょうか? インターネットを検索した遊ぶぐらいでエクセルやワードなどは さっぱり使いこなせない初心者です。 すみませんが、どなたかご存知の方いらっしゃったら教えて頂けますか? よろしくお願いいたします。

専門家に質問してみよう