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

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

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

全過去ログを検索

<< 0 >>
■24757  Re[3]: VB.Netでラベルを表示させる方法を教えてください。
□投稿者/ PATIO -(2008/09/09(Tue) 12:00:45)
    No24755 (たけちゃん さん) に返信

    > 'ラベル3のコントロールを表示。
    > Me.Label3.Visible = True
    > この処理で"自動生成"のラベルを表示させたいのですがMsgBox("自動生成開始")をコメントアウトすると
    > 表示させません。MsgBox("自動生成開始")のコメントをはずすと表示されます。何故なのでしょうか?

    VBは使いませんけれど、基本は同じだと思うので書き込みます。
    Windowsでは描画処理と言うのは基本的には優先順位が低い処理です。
    なので他の仕事で忙しいと描画処理は後回しになります。
    通常は特定のイベントハンドラが終わるまで描画関数を呼んでも後回しにされます。
    イベントハンドラの処理が終わって初めて描画処理が呼ばれるイメージです。
    なので、今の書き方だとButton4_Clickの処理が全て終わってから画面の更新が行なわれるので
    最初の方の可視/不可視の制御の意味が全く無くなっていると思います。
    この辺は、イベントドリブンと言うWindowsの基本的なしくみから来る話なので
    その辺の勉強をされた方が良いと思います。
記事No.24750 のレス /過去ログ46より / 関連記事表示
削除チェック/

■41785  Re[2]: INSERT文
□投稿者/ MON -(2009/09/30(Wed) 15:42:04)
    No41776(たくボン さん)に返信
    No41780(魔界の仮面弁士 さん)に返信

    遅くなってしまい、申し訳ありません。
    おっしゃられたように、Noとetcに[]をつけたら通りました。
    ありがとうございました。

    No41775(Ase さん)に返信
    はい…。確かにシングルコーテーションがついているとエラーが出ました。
    どのようにしたら良いでしょうか?
記事No.41770 のレス /過去ログ72より / 関連記事表示
削除チェック/

■55985  windowsのバージョンについて
□投稿者/ 如月 -(2010/12/21(Tue) 18:33:25)

    分類:[Windows 全般] 

    皆様のWindowsは、XP、vista、7のどれですか?
    私はいまだにXPsp3です。2014年までXPでいこと思ってます。
    皆様はどのようにお考えですか?
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■66213  Re[5]: テキスト全選択
□投稿者/ ニチェ -(2013/04/09(Tue) 16:35:24)
    2013/04/09(Tue) 16:38:10 編集(投稿者)

    No66212 (howling さん) に返信

    勝手に私のコメントをスルーさせるようなことはしないでください。

    BeginInvokeに「式はメソッドではありません」というエラーが出ているということは、
    BeginInvokeという変数を定義しているのだと推測します。
    なので、BeginInvokeが何なのか理解していないのではないかと推測するわけです。

    推測するに、新たなクラスを作成し、ここのコードにBeginInvokeなるものを書いたものの、
    「BeginInvokeは定義されていません」というエラーが出たため、BeginInvokeなる変数を定義してしまい、
    「式はメソッドではありません」というエラーが出たものと推測します。
    (Formのクラス内にBeginInvokeのメソッドを書いている間は、そもそもこのようなことは起こらなかったのでは、と考えます。
     他のTextBoxも同じようにしたい、ということなので、何らかのクラスを作成したということは十分考えられます。)

    これらは推測の域を出ていませんが、質問者の提示内容から読み取れることはこれが限界でしょう。
    でも、質問者はBeginInvokeについてよく理解していないであろうことを回答者は把握すべきであり、
    内容をよく読んだ上で回答することが回答者のすべきことと思います。

    @ハウリングさんは、質問でも回答でも見切り発車のような傾向が散見されますが、
     もう少し冷静になってみては如何でしょうか。
記事No.66174 のレス /過去ログ112より / 関連記事表示
削除チェック/

■76274  Re[2]: 正規表現が理解できません.
□投稿者/ よぽん -(2015/06/19(Fri) 14:48:44)
    No76253 (WebSurfer さん) に返信
    > [] で囲うより、\ でエスケープした方がスマートかもしれません。

    ごめんなさい、おっしゃってる意味がよくわかりません

    string ix1 = m.Groups["x1"].ToString(); ⇒ string ix1 = \x1;

    のようなことでしょうか?
記事No.76249 のレス /過去ログ129より / 関連記事表示
削除チェック/

■92924  List型で入れ子になっているときのデータのセット方法
□投稿者/ 河童 -(2019/11/09(Sat) 15:57:33)

    分類:[C#] 

    いつも大変お世話になっております。

    List型が入れ子になっているときリストにDataGridViewのデータをセットする方法を教えてください。
    グループのリストにはチームのリストが入れ子になっています。
    チームのリストにはユーザのリストが入れ子になっています。

    DataGridViewのデータを取得して、
    入れ子になっているチームとユーザのリストをどのように値を取得して
    リストを完成させれば良いでしょうか?

    大元はGroupLstです。この中にグループ、チーム、利用者の値を入れたいです。

    わからないことは、
    繰り返し処理を実行しているときに、一つの値しか取得できないので、
    どの様にリストごとの値を取得すればいいかです。

    ご教示よろしくお願いします。

    // グループリスト
    List<GroupInfo> GroupLst;
    public class GroupInfo
    {
    public int group_num { get; set; }
    public string group_name { get; set; }
    public List<TeamInfo> teamList = new List<TeamInfo>(); 
    }
    // チームリスト
    public class TeamInfo
    {
    public int team_num { get; set; }
    public string team_name { get; set; }
    public List<UserInfo> userList = new List<UserInfo>();
    }
    // 利用者リスト
    public class UserInfo
    {
    public int user_num { get; set; }
    public string user_name { get; set; }
    }
        
        // ロード時にデータをセット
    private void F01_Main_Load(object sender, EventArgs e)
    {
    // データを追加
    dgvGroup.Rows.Add(1, "GroupA", 1, "TeamA", 1, "User1");
    dgvGroup.Rows.Add(1, "GroupA", 1, "TeamA", 2, "User2");
    dgvGroup.Rows.Add(2, "GroupB", 2, "TeamB", 3, "User3");
    dgvGroup.Rows.Add(2, "GroupB", 2, "TeamB", 4, "User4");
    dgvGroup.Rows.Add(3, "GroupC", 3, "TeamC", 5, "User5");

    }

    // グループリストにセット
    private void btnApply_Click(object sender, EventArgs e)
    {
    GroupLst = new List<GroupInfo>();
    string check="";
    for (int i=0; i<4; i++)
    {
    for (int j=0; j<5; j++)
    {
    GroupInfo d = new GroupInfo();
    d.group_num = (int)dgvGroup.Rows[i].Cells[j].Value;

    GroupLst.Add(d);

    check += dgvGroup.Rows[i].Cells[j].Value;
    }
    }
    }
親記事 /過去ログ160より / 関連記事表示
削除チェック/

■92926  Re[1]: List型で入れ子になっているときのデータのセット方法
□投稿者/ 魔界の仮面弁士 -(2019/11/09(Sat) 17:49:40)
    No92924 (河童 さん) に返信
    > List型が入れ子になっているときリストにDataGridViewのデータをセットする方法を教えてください。
    
    入れ子の List の内容を DataGridView にデータバインドして表示させるのではなく、
    DataGridView の内容を入れ子の List に変換するのですね?
    
    
    > for (int i = 0; i < 4; i++)
    DataGridView には 5 行登録してあるようですが、
    上記では先頭 3 行しか処理していないようですね。
    
    全部の行では無く、先頭 n 行のみを処理したいのでしょうか?
    
    
    > グループのリストにはチームのリストが入れ子になっています。
    > チームのリストにはユーザのリストが入れ子になっています。
    
    サンプルだと、一つのグループ内に一つのチームしか無いですね。
    
    同じユーザーが複数のチームに所属したり、
    同じチームが複数のグループに所属することはありますか?
    
    
    > DataGridViewのデータを取得して、
    > 入れ子になっているチームとユーザのリストをどのように値を取得して
    > リストを完成させれば良いでしょうか?
    
    
    private void btnApply_Click(object sender, EventArgs e)
    {
        var users = dgvGroup.Rows.OfType<DataGridViewRow>().Where(row => !row.IsNewRow).Select(row => new
        {
            gInt = row.Cells[0].Value as int? ?? 0,
            gStr = row.Cells[1].Value as string ?? "",
            tInt = row.Cells[2].Value as int? ?? 0,
            tStr = row.Cells[3].Value as string ?? "",
            uInt = row.Cells[4].Value as int? ?? 0,
            uStr = row.Cells[5].Value as string ?? "",
        });
    
        var dicGroup = new Dictionary<int, GroupInfo>();
        var dicTeam = new Dictionary<int, TeamInfo>();
        foreach (var user in users)
        {
            GroupInfo g;
            TeamInfo t;
            if (!dicGroup.TryGetValue(user.tInt, out g))
            {
                dicGroup.Add(user.tInt, g = new GroupInfo { group_num = user.gInt, group_name = user.gStr, teamList = new List<TeamInfo>() });
            }
            if (!dicTeam.TryGetValue(user.tInt, out t))
            {
                g.teamList.Add(t = new TeamInfo { team_num = user.tInt, team_name = user.tStr, userList = new List<UserInfo>() });
                dicTeam.Add(user.tInt, t);
            }
            t.userList.Add(new UserInfo { user_num = user.uInt, user_name = user.uStr });
        }
        GroupLst = dicGroup.Values.ToList();
    }
記事No.92924 のレス /過去ログ160より / 関連記事表示
削除チェック/

■92925  Re[1]: List型で入れ子になっているときのデータのセット方法
□投稿者/ 河童 -(2019/11/09(Sat) 17:43:56)
    DataGridViewだと登録方法が難しいので、登録画面を再考します。
記事No.92924 のレス / END /過去ログ160より / 関連記事表示
削除チェック/

■92929  Re[2]: List型で入れ子になっているときのデータのセット方法
□投稿者/ 魔界の仮面弁士 -(2019/11/09(Sat) 18:28:06)
    回答をつける前に、方針転換による取り下げ行われていた…。 orz
    解決済みマークを復活させるついでに追加投稿。
    
    
    ■No92925 (河童 さん) に返信
    > DataGridViewだと登録方法が難しいので、登録画面を再考します。
    
    階層の数だけ DataGridView を用意するという手もあります。使いやすいかどうかは仕様次第ですが。
    
    
    
    空の DataGridView を 3 つと
    BindingSource を 3 つ、
    フォームに貼っておいてください。
    
    
    private DataSet ds = new DataSet();
    private void F01_Main_Load(object sender, EventArgs e)
    {
        #region 型付DataSetを使えば、この部分をデザイン時に作成しておくこともできる
        var tblG = ds.Tables.Add("Group");
        tblG.Columns.Add("group_num", typeof(int));
        tblG.Columns.Add("group_name");
        tblG.PrimaryKey = new DataColumn[] { tblG.Columns["group_num"] };
    
        var tblT = ds.Tables.Add("Team");
        tblT.Columns.Add("group_num", typeof(int));
        tblT.Columns.Add("team_num", typeof(int));
        tblT.Columns.Add("team_name");
        tblT.PrimaryKey = new DataColumn[] { tblT.Columns["group_num"] , tblT.Columns["team_num"] };
    
        var tblU = ds.Tables.Add("User");
        tblU.Columns.Add("team_num", typeof(int));
        tblU.Columns.Add("user_num", typeof(int));
        tblU.Columns.Add("user_name");
        tblU.PrimaryKey = new DataColumn[] { tblU.Columns["team_num"], tblU.Columns["user_num"] };
    
        ds.Relations.Add("G_T", tblG.Columns["group_num"], tblT.Columns["group_num"]);
        ds.Relations.Add("T_U", tblT.Columns["team_num"], tblU.Columns["team_num"]);
    
        bindingSource1.DataSource = ds;
        bindingSource1.DataMember = "Group";
        bindingSource2.DataSource = bindingSource1;
        bindingSource2.DataMember = "G_T";
        bindingSource3.DataSource = bindingSource2;
        bindingSource3.DataMember = "T_U";
    
        dataGridView1.DataSource = bindingSource1;
        dataGridView2.DataSource = bindingSource2;
        dataGridView3.DataSource = bindingSource3;
    
        dataGridView2.Columns["group_num"].Visible = false;
        dataGridView3.Columns["team_num"].Visible = false;
        #endregion
    
    
        // データを追加
        ds.Tables["Group"].Rows.Add(1, "GroupA");
        ds.Tables["Group"].Rows.Add(2, "GroupB");
        ds.Tables["Group"].Rows.Add(3, "GroupC");
        ds.Tables["Team"].Rows.Add(1, 1, "TeamA");
        ds.Tables["Team"].Rows.Add(2, 2, "TeamB");
        ds.Tables["Team"].Rows.Add(3, 3, "TeamC");
        ds.Tables["User"].Rows.Add(1, 1, "User1");
        ds.Tables["User"].Rows.Add(1, 2, "User2");
        ds.Tables["User"].Rows.Add(2, 3, "User3");
        ds.Tables["User"].Rows.Add(2, 4, "User4");
        ds.Tables["User"].Rows.Add(3, 5, "User5");
        ds.AcceptChanges();
    
    // dataGridView4.DataSource = ds.Tables["User"];
    }
    
    
    DataGridView の代わりに DataGrid を使えば、一つのコントロールで
    階層構造を表現することもできます。
    (.NET Framework 1.x 世代の設計なので扱いにくいですが)
記事No.92924 のレス / END /過去ログ160より / 関連記事表示
削除チェック/

■92930  Re[3]: List型で入れ子になっているときのデータのセット方法
□投稿者/ 河童 -(2019/11/09(Sat) 19:26:54)
    No92929 (魔界の仮面弁士 さん) に返信

    ご回答ありがとうございます。
    只今、画面を試行錯誤しています。
    1つのDataGridViewでは難しそうなので、入れ子のリストごとにDataGridViewを作成しようと思っています。

    各DataGridVieのソースはGroupLstを設定。

    1つ目:dgvGroup
    group_num
    group_name
     
    2つ目:dgvTeam
    team_num
    team_name

    3つ目:dgvUser
    user_num
    user_name

    あるグループを選択するとそれに連動したチームが表示される。
    あるチームを選択するとそれに連動した利用者が表示さえるように設定を考えています。

    連動させる方法がわからないので、新規に質問をさせていただきます。
記事No.92924 のレス /過去ログ160より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -