C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: DataGridに任意の文字を表示、追加させるには


(過去ログ 14 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■5004 / inTopicNo.1)  DataGridに任意の文字を表示、追加させるには
  
□投稿者/ tnkver2 (6回)-(2007/07/02(Mon) 13:45:53)

分類:[C# (Windows)] 

 こんにちは、始めまして。

早速質問なのですが、テキストボックスに任意の文字を入力させて、ボタンを押すとその文字をDataGridに表示、さらに別の文字が入力されたら、DataGridにボタンが押されるたびに内容が追加されていくような動作を行いたいのですが、可能でしょうか?

引用返信 編集キー/
■5005 / inTopicNo.2)  Re[1]: DataGridに任意の文字を表示、追加させるには
□投稿者/ はつね (194回)-(2007/07/02(Mon) 13:55:46)
はつね さんの Web サイト
No5004 (tnkver2 さん) に返信
> 早速質問なのですが、テキストボックスに任意の文字を入力させて、ボタンを押すとその文字をDataGridに表示、さらに別の文字が
> 入力されたら、DataGridにボタンが押されるたびに内容が追加されていくような動作を行いたいのですが、可能でしょうか?

可能です。
DataGridに内容を追加する方法については調べてみましたか?
その方法をテキストボックスのClickイベントプロシージャの中で記述すればできます。

引用返信 編集キー/
■5011 / inTopicNo.3)  Re[2]: DataGridに任意の文字を表示、追加させるには
□投稿者/ tnkver2 (7回)-(2007/07/02(Mon) 15:17:46)
2007/07/02(Mon) 17:17:19 編集(投稿者)

今は下記のようにコーティングしているのですが、テキストボックスの中身が変わっても追加されずに、現在グリッドに表示されている名前だけが変わってしまいます。

DataSet ds = new DataSet("明細");
DataTable dt;
DataRow dr;

dt = ds.Tables.Add("明細");

dt.Columns.Add("商品名",Type.GetType("System.String"));
dr = dt.NewRow();
dr["商品名"] = textBox.Text;
dt.Rows.Add(dr);

dataGrid1.DataSource = ds.Tables["明細"];
引用返信 編集キー/
■5015 / inTopicNo.4)  Re[3]: DataGridに任意の文字を表示、追加させるには
□投稿者/ ダッチ (143回)-(2007/07/02(Mon) 17:44:30)
> DataSet ds = new DataSet("明細");
毎回データセットを生成しては、前回の情報が失われてしまいます。
前回の情報に今回の情報をプラスするような形にしてみてください。

前回の情報は dataGrid1.DataSource に入っていると思いますので、
その中に入っているものに(DataTable)対して新しい行を作成する処理を行えばうまくいくと思います。
引用返信 編集キー/
■5016 / inTopicNo.5)  Re[3]: DataGridに任意の文字を表示、追加させるには
□投稿者/ 魔界の仮面弁士 (323回)-(2007/07/02(Mon) 17:52:35)
No5011 (tnkver2 さん) に返信
> 現在グリッドに表示されている名前だけが変わってしまいます。
> dataGrid1.DataSource = ds.Tables["明細"];

ボタンを押すたびに、新たな(1行だけの)DataTable を作り直して、毎回セットしなおしているからでしょう。
すでにグリッドに表示している DataTable を編集するようにしてみてください。

public /* partial */ class Form1 : Form
{
    #region Windows フォーム デザイナで生成されたコード
    /* 中略 */
    #endregion

    private DataGrid dataGrid1 = new DataGrid();
    DataSet ds = new DataSet("明細");
    DataTable dt;
    public Form1()
    {
        InitializeComponent();
        dt = ds.Tables.Add("明細");
        dt.Columns.Add("商品名", Type.GetType("System.String"));
        textBox1.Text = "テスト";
        dataGrid1.Size = new Size(150, 200);
        Controls.Add(dataGrid1);
        dataGrid1.DataSource = ds.Tables["明細"];
    }

    private void button1_Click(object sender, EventArgs e)
    {
        DataRow dr = dt.NewRow();
        dr["商品名"] = textBox1.Text;
        dt.Rows.Add(dr);
    }
}

引用返信 編集キー/
■5018 / inTopicNo.6)  Re[4]: DataGridに任意の文字を表示、追加させるには
□投稿者/ tnkver2 (8回)-(2007/07/02(Mon) 18:38:28)
ありがとうございます!

無事解決しました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -