PV1VB.NET(.Netframework4.5)です。テキストボックスやボタンを貼り付けたユーザーコントロールを作成し、それをDataGridViewで使用したいと思っています。下記のURLの情報を参考に作成してみました。http://msdn.microsoft.com/ja-jp/library/7tas5c80(v=vs.110).aspxhttp://morado106.blog106.fc2.com/blog-entry-25.htmlしかし、DataGridViewが最初に表示された時点では、普通のDataGridViewの表示のままです。セルをダブルクリックして編集状態になって初めてユーザーコントロールが表示されます。派生するクラスを定義する必要があります。インターフェイスを実装するクラスを定義する必要もあります。」と説明に有り、実際サンプルにそってその通りしました。DataGridViewTextBoxCellを継承しているので、先述のような動きになっていると予想してます。希望としては編集モードでなくても、最初からユーザーコントロールが表示されて欲しいのですが、何が足りないでしょうか?ボタンやチェックボックスタイプのセルが初期表示できているところを見ると、ユーザーコントロールでもできると思います。DataGridViewTextBoxCellではなくDataGridViewCellを継承し、DataGridViewTextBoxCellも使わないと、編集モードでさえ表示されませんでした。描画のための処理が足りないと思うのですが、どういう箇所に手を入れていけばいいのかわかりません。C#でも構いませんので、サンプル等の情報をお教えいただけませんでしょうか。Shuさんのご指摘どおり、コードを載せます。表示できるようにしてからと思い、ユーザコントロールに値を設定したり計算する処理等はまだ未実装です。Class'実際の動作はフォームにDataGridViewを貼り付け、Loadイベントに以下の'処理を記述して確認しています。Subflied_onionさんのアドバイスからようやく1歩前進できました。ユーザーコントロールをDataGridViewのセルの中に初期表示させられました。Paintメソッドの中でユーザーコントロールのBitmapオブジェクトを取得して、セルに貼り付けるという感じの手法です。参考:http://blogahf.blogspot.jp/2007/08/blog-post_6170.htmlただ、まだ課題がありまして、ユーザーコントロールの中にボタンを配置しています。そのボタンをクリックするには該当のセルを1回クリックし、さらにもう1回クリックして編集モードにしてからじゃないと、ボタンのクリックができません。UIとしては表示されているボタンを編集モードにしなくてもクリックできるようにしたいです。DataGridViewのCellEnterイベントやCellMouseEnterイベントで編集モードになるようにSendKeys.Send("{F2}")や、DataGridView1.BeginEdit(False)をしてみましたが、やはり1回セルをクリックしないとだめでした。標準のDataGridViewButtonColumnのように最初からボタンをクリックしたいのですが、どのようにすればよいのかアドバイスいただけないでしょうか。(2)まず作成したコードを載せた方がよいかと思います。更新順0自身で描画する必要があります。MyOrginalCellでPaintメソッドをオーバーライドしてそこで描画してください。四角で塗りつぶす簡単な描画の例は以下の様になります。Sub参考として、どぼんさんのサイトを挙げておきます。http://dobon.net/vb/dotnet/datagridview/maskedtextboxcolumn.html補足:ここではセルの編集に使用するコントロールを独自にホストする方法だけを紹介し、セルの描画についてはDataGridViewTextBoxCellクラスに全て任せてしまいます。カスタムセルクラスでセルを自分で描画する方法は、こちらで紹介しています。上記「こちら」のページでセル描画のサンプルがあります。DataGridViewTextBoxCell自身もPaintPrivateの中でDrawTextなど行っているようですね。参考までにこちらもリンクを載せておきます。(0)なるほど、貴重な情報のご提供ありがとうございます。詳細を理解するのはこれからですが、筋道は見えた気がします。時間かかると思いますが試して結果をご報告したいです。08:47アドバイスを頂いて初期表示させるところまでできました。ありがとうございました。別の問題が有り、元の質問文に追記しました。14:43ウォッチこの質問への回答やコメントをメールでお知らせします。