アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

C# DataGridViewについての質問です。

DataGridViewで1列目のコンボボックスを選択した値によって、その行のみ
2列目の入力フォームを変更したいのですが、その様なことは可能でしょうか?

例.1行目1列目コンボボックス「a」選択時、1行目2列目コンボボックス表示
  2行目1列目コンボボックス「b」選択時、2行目2列目テキストボックス表示
  3行目1列目コンボボックス「c」選択時、3行目2列目チェックボックス表示

列全体の入力フォームを変更する処理なら分かるのですが、特定のセルのみ変更する
方法が分かりません。

もし可能であれば実現方法も教えて頂けると非常に助かります。


宜しくお願いします。

A 回答 (2件)

なるほど。

そういうことだったのですねw
私頭が弱いので読解力っていうのが無いみたいで・・・ご迷惑おかけしました。

FormにButtonを貼り付けてクリックイベントで下記コードを実行してみてください。

private void button1_Click(object sender, EventArgs e)
{
DataGridView dgv = new DataGridView();
DataGridViewCheckBoxCell checkCell = new DataGridViewCheckBoxCell();
DataGridViewComboBoxCell comboCell = new DataGridViewComboBoxCell();
DataGridViewTextBoxCell textCell = new DataGridViewTextBoxCell();


dgv.AllowUserToAddRows = false;
dgv.EditMode = DataGridViewEditMode.EditOnEnter;
dgv.RowCount = 3;
dgv.ColumnCount = 1;
dgv.Dock = DockStyle.Fill;
Controls.Add(dgv);

//CheckBox
checkCell.Value = true;
dgv[0, 0] = checkCell;

//ComboBox
comboCell.DisplayMember = "test";
dgv[0, 1] = comboCell;

//TextBox
textCell.Value = "";
dgv[0, 2] = textCell;



}

DataGridViewは必要ありません。あくまでテスト用データなので別プロジェクトを作成して実行してください。これを改良すれば目的のことも出来ると思います。
    • good
    • 0
この回答へのお礼

出来ました!

実現出来ないんじゃないかと思っていたので本当に助かりました!

ありがとうございます!

お礼日時:2010/04/22 17:25

可能だと思います。


DataGridViewComboBoxColumn.DisplayStyleForCurrentCellOnlyプロパティをTrueにしてください。

これでいけるとは思いますが・・・

この回答への補足

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

残念ながらrk_lesさんが仰った方法は既に試しており、その方法では
条件を満たせないことが分かりました。

説明が不足しており、申し訳ありません。

確かに特定のセルの入力フォームの変更は可能なのですが、それだと
同列の他全セルの入力フォームも自動的に変更されてしまいます。

同列の他セルに影響を与えず、あくまで各行の入力フォームを個別で自由に
設定したいのです。


例.
  | 1列目 | 2列目
  |------------
  |  a   | テキストボックス
  |  b   | コンボボックス
  |  c   | チェックボックス
  |  a   | テキストボックス

 ※1行目1列目のコンボボックス値を「b」に変更した場合、1行目2列目はコンボ
  ボックスとなりますが、同列他セルの入力フォームはそのままです。

補足日時:2010/04/22 15:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A