質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

23655閲覧

C#でFormのDataGridViewにボタンを表示し、ボタンに行ごとに異なるtextを表示したいです。

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2016/01/19 08:54

編集2016/01/20 00:04

ualStudio 2013, Formアプリケーション, Windows7の組み合わせで開発しています。
FormのDataGridViewにボタンを表示し、ボタンに行ごとに異なるtextを表示したいです。
http://dobon.net/vb/dotnet/datagridview/datagridviewbuttoncolumn.html
では、すべてのbuttonに同じ文字を表示します。
個別に文字を表示する方法をご教示ください。

現在のコード
DataGridViewButtonColumn column = new DataGridViewButtonColumn();
DataGridViewCellStyle dataGridViewCellStyle = new DataGridViewCellStyle();
datagridview.RowsDefaultCellStyle = dataGridViewCellStyle;
datagridview.RowTemplate.Height = 100;

//DataGridViewButtonColumnの作成
//列の名前を設定
column.Name = "name";
column.UseColumnTextForButtonValue = true;
column.Text = "name";
column.Width = 250;
//DataGridViewに追加する
datagridview.Columns.Add(column);

//2行目
Button button = new Button();
button.Text = "kaorurider";
mailslistBox.Rows.Add(button);

今はこんなコードで、buttonは追加できていますが、文字がなく、豆腐状態です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chironian

2016/01/19 09:03

タグを間違っているようですよ。C++ではなくC#と思います。 この1つ前の質問もタグ間違いのようです。
退会済みユーザー

退会済みユーザー

2016/01/20 00:05

ありがとうございます。修正しました。気づきませんでした。
guest

回答1

0

ベストアンサー

C#

1DataGridViewRow row = dataGridView.Rows[0]; 2DataGridViewCell cell = row.Cells[0]; 3if(cell is DataGridViewButtonCell) 4{ 5 DataGridViewButtonCell btncell = (DataGridViewButtonCell)cell; 6 btncell.Value = "任意の文字"; 7}

DataGridViewの1行目、最初のセルがボタンセルだった場合の処理になりますが、
以上のようにすれば、任意の行のボタンテキストを変更できます。

投稿2016/01/19 09:18

Toyoshima

総合スコア422

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/01/20 07:23

ありがとうございます。すこし先に進みました。 2行目以降を次のようにしてみました。 //2行目 DataGridViewRow row0 = datagridview.Rows[0]; DataGridViewCell cell0 = row0.Cells[0]; if(cell0 is DataGridViewButtonCell){ DataGridViewButtonCell btncell0 = (DataGridViewButtonCell)cell0; btncell0.Value = "kaorurider"; } //3行目 mailslistBox.Rows.Add(); DataGridViewRow row1 = datagridview.Rows[1]; DataGridViewCell cell1 = row1.Cells[0]; if (cell1 is DataGridViewButtonCell) { DataGridViewButtonCell btncell1 = (DataGridViewButtonCell)cell1; btncell1.Value = "22222"; } これで、1行目のボタンにkaoruridder 2行目のボタンに22222と表示できるかと思ったら、 2行目のボタンに22222を表示し、1行目は豆腐でした。 //3行目以降をコメントアウトすると、1行目のボタンにkaoruridderと表示できます。 どこで間違っているのでしょう?
Toyoshima

2016/01/20 07:36

間違いが見当たらないですね・・・ 丁寧ではないですが、以下のようにやってみたらどうなりますか? dataGridView.Rows[0].Cells[0].Value = "HOGE"; dataGridView.Rows[1].Cells[0].Value = "PIYO"; dataGridView.Rows[2].Cells[0].Value = "FUGA";
退会済みユーザー

退会済みユーザー

2016/01/26 00:10

こんにちは。teratailのデータベース or Web Browserのcash or わたしの不注意で、回答があったことに今まで気づきませんでした。失礼しました。 結局、datagridviewでは難しそうと判断し、自分でtextBoxとbuttonを表のかたちに並べました。dataGredViewのコードは混乱するのですっぱり削除してしまいました。 うーむ。
Toyoshima

2016/01/26 05:14

目的を果たす方法は何通りもありますので、DataGridViewを使うことにこだわらなくても良いと思います! 私も、以前にASP.netのGridViewで、ヘッダなどのセル連結したりスクロールロックしたりを頑張ってやろうとして、かえって面倒くさい処理になったことがあり、スッパリ止めて別の手段をつかった記憶があります。。 GridViewとかは、シンプルな表であれば、データバインドができる強みがあるんですけど、それ以上にややこしくなりそうなら別手段に出るのもありだと思います!
退会済みユーザー

退会済みユーザー

2016/01/26 08:47

ありがとうございます。 おっしゃるとおりで、DataGridViewでは1項目に複数の行を表示するのが難しそうだと判断しました。 いつも時間に追われていて、大変恐縮してます。 重ねて感謝。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問