【C#】VisualC# 2008 Expressについて質問です。無効にしたDatagridViewButtonCell

を派生させたクラスに対し、特定の条件でボタンを押せないようにしたいと考えています。

Enableの設定をすることで押せないボタンにすることはできたのですが、
色が、デフォルトの薄い灰色になってしまいました。
(色は既存のGUIに併せて、濃い灰色に設定する必要があります。)

・押せない濃い灰色のDatagridViewButtonCell

を作るための方法についてアドバイス頂きたく宜しくお願いします。

なお、「質問者のスキルから考えられる想像可能な対応方法」を以下に示します。
もしコーディング可能であれば教えていただけると助かります。

①無効ボタンの色のデフォルトを一時的に変更する(実装可否不明)
②特定の条件の時は、DatagridViewButtonCellでクリック時に処理されるメソッドのメンバを動かさずReturnする(実装可否不明)

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/04/12 18:55:32
  • 終了:2010/04/19 10:27:56

ベストアンサー

id:HALSPECIAL No.3

HALSPECIAL回答回数407ベストアンサー獲得回数862010/04/13 12:09:31

ポイント100pt

DatagridViewで使ったことはありませんが、

IMessageFilterを検討してみてはいかがでしょう。


どういう事かと言うと、

アプリケーションにメッセージフィルタを登録ておきます。

コントロールがクリックされた際、コントロールのイベントが発生する前に、メッセージを捕捉して殺してしまうのです。


こちらが参考になると思います。

http://d.hatena.ne.jp/aharisu/20090504/1241453699

id:harunoharuno

知らない対応方法でしたので大変勉強になりました。

回答ありがとうございました。

2010/04/15 21:28:22

その他の回答(2件)

id:brand123 No.1

brand123回答回数52ベストアンサー獲得回数02010/04/12 21:06:17

(はてなにより削除しました)
id:harunoharuno

関係ないことが書かれているためこの回答はNGです。

2010/04/13 02:20:15
id:heke2mee No.2

heke2mee回答回数162ベストアンサー獲得回数432010/04/13 04:45:19

ポイント100pt

こちらのサイトに「Windows フォーム DataGridView コントロールのボタン列にあるボタンを無効にする」方法があります。

その中にPaintをオーバライドしてボタンを描画している部分があるので参考になると思いますよ


http://msdn.microsoft.com/ja-jp/library/ms171619.aspx

id:harunoharuno

回答ありがとうございます。

// Draw the disabled button.

ButtonRenderer.DrawButton(graphics, buttonArea,PushButtonState.Disabled);

を実行する時点でデフォルトの薄い灰色になるような・・・・気がします。

[追記]

上記処理を行わないで色の設定を行った場合は、色の設定ができます。

またクリックする時の処理を行わないこともできるのですが、、、、

無効にしていないため押されたらボタンがへこんでしまうという問題が

が出てきてしまいます。

違和感があるので気になります。

マウス操作を殺すことができたら、、、、

もしくは上から絶対座標の透明コントロールをかぶせることが出来たら

もんだいないのですが、、、、、

2010/04/13 14:07:02
id:HALSPECIAL No.3

HALSPECIAL回答回数407ベストアンサー獲得回数862010/04/13 12:09:31ここでベストアンサー

ポイント100pt

DatagridViewで使ったことはありませんが、

IMessageFilterを検討してみてはいかがでしょう。


どういう事かと言うと、

アプリケーションにメッセージフィルタを登録ておきます。

コントロールがクリックされた際、コントロールのイベントが発生する前に、メッセージを捕捉して殺してしまうのです。


こちらが参考になると思います。

http://d.hatena.ne.jp/aharisu/20090504/1241453699

id:harunoharuno

知らない対応方法でしたので大変勉強になりました。

回答ありがとうございました。

2010/04/15 21:28:22

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません