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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■16820  gridviewへんしゅう
□投稿者/ ロジック -(2008/04/11(Fri) 00:29:06)

    分類:[.NET 全般] 

    C#です

    GridViewを使い編集機能を作成しようと思いますが
    全行編集モードに変えて一括で編集しようと思いますが
    よい参考サンプルのようなものが見つかりませんでした。

    実現可能でしょうか?

    参考サンプルありましたらお願い致します。
親記事 /過去ログ34より / 関連記事表示
削除チェック/

■51452  Re[36]: シューティングゲームのあたり判定について
□投稿者/ 使い魔 -(2010/07/06(Tue) 19:50:38)
    No51389 (文月 さん) に返信
    > ■No51359 (使い魔 さん) に返信
    >
    > 作りだしたプログラムは何としても完成させたいと気持ちははやるのはわかります。
    > でも急がば回れです。
    > 一度作りかけのプログラムから離れて
    > シューティングのサンプルをじっくり打ち込みながら、再度考えてみると
    > ヒントがつかめるかもしれません。
    >
    >
    > まさしく産みの苦しみを乗り越えて創造する喜びを味わうのがプログラミングの
    > 醍醐味だと思います
    とりあえず、テキスト買って勉強しなおしてみます。(改めて質問するかもしれません)
    いろいろとアドバイスをありがとうございました。
記事No.50677 のレス / END /過去ログ86より / 関連記事表示
削除チェック/

■69491  Re[4]: tableBindingSourceの検索方法
□投稿者/ ブルー -(2013/12/30(Mon) 23:23:42)
    WebSurfer さん

    わかりにくい質問の仕方をしてしまい申し訳ありませんでした。
    質問を考えなおしました。

    下記のURLのような事をおこないたいと思っています。
    http://uploda.cc/img/img52c17fe2d702d.jpg

    リンク先の検索抽出ボタンをクリックすると下記のコードが走ります。

    //==========================================================================
    private void button1_Click(object sender, EventArgs e)
    {
    DataRow[] foundRows;
    foundRows = this.testDataSet.table1.Select("f1 = '" + textBox1.Text + "'");
    table1BindingSource.DataSource = foundRows;
    }
    //===========================================================================

    このコードにより、DataTableのデータを条件により抽出できました。
    検索テキストボックスに何も入力されていない状態で検索ボタンをクリックすると、全行表示できるようにしたいと思っています。

    上記のコードに追加で、textBox1.Textが空であれば下記のコードを試してみましたがうまく結果得られませんでした。

    //===========================================================================
    this.table1TableAdapter.Fill(this.testDataSet.table1);
    //===========================================================================

    どのようにすれば実現できますでしょうか?
    何度も見て頂き申し訳ありません。


    No69488 (WebSurfer さん) に返信
    > ■No69487 (ブルー さん) に返信
    > 検索テキストボックスを空にし、再度検索ボタンをクリックすると、条件をクリアして、全件表示にしたいと思います。
    >>
    >>そこで、テキストボックスが空の場合は下記のようなコードを書いたのですが、解決できませんでした。
    >>
    >>//------------------------------------------------------------------------------
    >>this.TableAdapter.Fill(this.DataSet.DataTable);
    >>//------------------------------------------------------------------------------
    >
    > 「解決できませんでした」では不十分な情報だとは思いませんか?
    >
    > コードをアップされてますが、そのような断片的なコードで、自分のようなエスパーじゃない
    > 回答者に何が問題か分かるとは期待しないでください。
    >
    > 掲示板の反対側にいて、掲示板に書いてあること以外は知り得ない回答者に、どのような情報
    > を提供すれば質問者さんの状況を的確に把握できて、タイムリーに的を得た回答が得られるか、
    > よく考えて質問を書いていただければと思います。
    >
記事No.69476 のレス /過去ログ118より / 関連記事表示
削除チェック/

■70449  DbContextの使い方について
□投稿者/ 狂炭酸 -(2014/03/26(Wed) 22:42:21)

    分類:[C#] 

    OS:Windows7
    言語:C#
    IDE:VisualStudio Express 2012 for Windows Desktop
    DB:SQL Server 2012 Express

    お世話になります。

    コンストラクタでデータを取得し、削除ボタンクリック時に取得したデータを削除(DELETE)しようとしています。
    SetInitialValues内でEntitiesをusingしてplanを取得し、btnDelete_Click内で再度Entitiesをusingして
    planを削除しようとするとエラーとなりました。
    (別のDbContextで取得したオブジェクトになるので当然といえば当然ですが。。。)

    そこでEntitiesを使いまわすために、以下ようにコードを修正したのですが

    1.form1が閉じられたとき、EntitiesのDisposeは実行されるのでしょうか?
    2.このコードでEntitiesのDisposeが実行されない場合、どのように修正したらよいのでしょうか?


    public partial class form1 : Form
    {

    private List<plan> planList = new List<plan>();
    private Entities entity = new Entities();

    /// <summary>
    /// コンストラクタ
    /// </summary>
    public form1()
    {
    InitializeComponent();
    SetInitialValues();
    }

    /// <summary>
    /// 初期値をセット
    /// </summary>
    private void SetInitialValues()
    {
    var itemData = (from item in entity.item
    join plan in entity.plan on item.id equals plan.id
    select new { item, plan }).ToList();
    /*
    ここでDataGridViewの各列にplanの値をセット
    */
    planList.AddRange(itemData.Select(x => x.plan).ToList());
    }

    /// <summary>
    /// 削除ボタンクリック時
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnDelete_Click(object sender, EventArgs e)
    {
    foreach (var delPlan in planList)
    {
    entity.plan.Remove(delPlan);
    }
    entity.SaveChanges();

    this.DialogResult = DialogResult.OK;
    }
    }

    何方かよろしくお願いします。
親記事 /過去ログ120より / 関連記事表示
削除チェック/

■84134  Re[5]: 多階層のxmlのDataTableへの読み書きについて
□投稿者/ 魔界の仮面弁士 -(2017/05/18(Thu) 23:54:03)
    No84132 (なと さん) に返信
    > Parentはそのまま
    > bsp = ds.Tables[tableName];
    > dgvp.DataSurce = bsp;
    > dgvp.DataMember = "Parent";
    > ですよね。

    違います。
    それだと『フィールド Parent の子リストを作成できません。』などのエラーとなる可能性があります。

    上記の dgvp というのは、Parent 用の DataGridView を
    指しているのだと思いますが(DataSurce → DataSource というのはさておき)、
    Parent 行を DataGridView に表示するだけなら、
      // DataMember は空のまま
      dataGridView1.DataSource = ds.Tables["Parent"];
    もしくは
      dataGridView1.DataSource = ds;
      dataGridView1.DataMember = "Parent" ;
    です。



    > XMLから読んだDataSetをBindingSourceとDataMemberに割り当てるときのプロパティがよく分からず、

    とりあえずこんな感じ。空のフォームに貼って試してみてください。
    ここでは説明のため、コントロールの配置やイベントの割り当ても、サンプルコード中で行っています。
    (実際の開発には、コントロール等をデザイン時に配置しておくことができます)

    親・子・孫という 3 つの DataGridView を並べてありますが、それぞれは
    BindingSource を通じてリレーションが貼られているため、
    「子1」を選択すれば、長男の子供達(10歳と8歳)が自動的に表示され、
    「子2」を選択すれば、次男の子供達(5歳と4歳)が自動的に表示されます。


    public partial class Form1 : Form
    {
      private DataSet ds = new DataSet("Sample");
      private DataGridView dgvParent, dgvChild, dgvGrandson;

      private void Form1_Load(object sender, EventArgs e)
      {
        Sample();
      }

      private void Sample()
      {
        ds.Clear();
        ds.ReadXml(@"C:\temp\test.xml");

        // 各 DataGridView とのバインドはデザイン時に終わらせてあるので、
        // ReadXml した後で、DataSource を再割り当てする必要はありません。
        //
        // しかしながら、型指定のない「素の DataSet」の場合には、
        // テーブル情報やリレーション情報が無いため、
        // DataMember の割り当ては、ReadXml 後に行う必要があります。
        // (事前に割り当ててしまうと、メンバー名が見つからずエラーになります)
        //
        bndParent.DataMember = "Parent";
        bndChildren.DataMember = "Parent_Childs";
        bndChild.DataMember = "Childs_Child";
        bndGrandsons.DataMember = "Child_Grandsons";
        bndGrandson.DataMember = "Grandsons_Grandson";
        //
        // ただし、DataSet デザイナを用いて「型指定された DataSet」をあらかじめ用意しておき、
        // それをデザイン時に bndParent.DataSource に割り当てていた場合には、
        // 各種 DataMember の割り当てさえもデザイン時に済ませておくことができます。
        //
      }


      public Form1()
      {
        InitializeComponent();

        #region コントロールの配置(実際はフォームデザイナで配置)
        // Load イベントの割り当てです。
        this.Load += Form1_Load;

        // フォームに BindingSource を貼ると、自動的に components がセットされるのですが
        // 今回はデザイン時処理もコードで書いていますので、下記では手動でセットしています。
        if(components == null)
        {
          components = new System.ComponentModel.Container();
        }

        // リレーションごとに BindingSource を用意しておきます。
        bndParent = new BindingSource(components);
        bndChildren = new BindingSource(components);
        bndChild = new BindingSource(components);
        bndGrandsons = new BindingSource(components);
        bndGrandson = new BindingSource(components);

        bndParent.DataSource = ds;
        bndChildren.DataSource = bndParent;
        bndChild.DataSource = bndChildren;
        bndGrandsons.DataSource = bndChild;
        bndGrandson.DataSource = bndGrandsons;

        // 下記では、親・子・孫の DataGridView を縦に3つ並べて配置しています。
        // また、フォームのリサイズに合わせて大きさが変わるよう、
        // それらを TableLayoutPanel の上に配置させています。
        //
        var panel = new TableLayoutPanel() { Dock = DockStyle.Fill, ColumnCount = 1, RowCount = 3 };
        dgvParent = new DataGridView() { Dock = DockStyle.Fill, AllowUserToAddRows = false };
        dgvChild = new DataGridView() { Dock = DockStyle.Fill, AllowUserToAddRows = false };
        dgvGrandson = new DataGridView() { Dock = DockStyle.Fill, AllowUserToAddRows = false };
        panel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F / 3F));
        panel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F / 3F));
        panel.RowStyles.Add(new RowStyle(SizeType.Percent, 100F / 3F));
        panel.Controls.Add(dgvParent);
        panel.Controls.Add(dgvChild);
        panel.Controls.Add(dgvGrandson);
        Controls.Add(panel);

        // データバインドの設定を行います。
        // ここでは DataSource のみを設定していますが、元データに型付き DataSet を指定してある場合は、
        // DataMember プロパティも事前に指定しておくことができます。
        //
        dgvParent.DataSource = bndParent;
        dgvChild.DataSource = bndChild;
        dgvGrandson.DataSource = bndGrandson;

        StartPosition = FormStartPosition.WindowsDefaultBounds;
        #endregion
      }
      private BindingSource bndParent;
      private BindingSource bndChildren, bndGrandsons;
      private BindingSource bndChild, bndGrandson;
    }
記事No.84124 のレス /過去ログ143より / 関連記事表示
削除チェック/

■84135  Re[6]: 多階層のxmlのDataTableへの読み書きについて
□投稿者/ なと -(2017/05/19(Fri) 09:44:51)
    No84134 (魔界の仮面弁士 さん) に返信

    コード全体を書いて頂きありがとうございます!

    BindingSourceはそのように使うのですね。
    DataSourceに続けてDataMember書いてはいけないとは・・自力でやっていたら一生解決しなかったかもしれません。

    頂いたコードを改良して、親を多数にした場合や、他のタグも含めた状態で読み書きすることも出来るようになりました。

    また詰まった時はよろしくお願い致します。
記事No.84124 のレス / END /過去ログ143より / 関連記事表示
削除チェック/

■101934  Re[2]: SendKeys.Sendに関して
□投稿者/ ゆみと -(2023/05/15(Mon) 16:11:16)
    To:radianさん

    ご返信ありがとうございます。

    IMEに違いがある事を確認しました。

    IME>全般
    「以前のバージョンのMicrosoft IMEを使う」
    に違いがありました。

    オン:出来ない
    オフ:出来る

    > クリップボード経由で送ってみては。
    一旦検討してみたいと思います。

    以上です。
記事No.101898 のレス / END /過去ログ178より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -