0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIに頼り切ってタスクアプリを追加開発する。:WBS項目設定画面機能追加

0
Last updated at Posted at 2026-05-21

前回までの概要

前前回まででタスク管理アプリの大枠作成、ブラッシュアップをしました。
今回はWBS項目設定画面の内容見直し、ブラッシュアップを行います。

プロンプト

WBSカラム設定画面へ以下の追加を行いたい
タイトル
一覧へ空欄行追加
項目へ空欄追加
No項目削除
タスクID項目追加

回答

修正方針

WbsColumnSettingForm に以下を追加します。

追加内容 内容
タイトル 画面タイトル表示
空欄行追加 新規行追加可能
項目空欄 未設定許可
No項目削除 不要項目削除
タスクID追加 新規項目

修正対象

ファイル 内容
WbsColumnSettingForm.Designer.cs UI追加
WbsColumnSettingForm.cs 空行追加対応
WbsColumnSettingService.cs 項目修正
WbsForm.cs タスクID対応

1. WbsColumnSettingForm.Designer.cs 修正


フィールド追加

private Label lblTitle;

private Button btnAddRow;

InitializeComponent() 修正


タイトル追加

lblTitle =
    new Label();

lblTitle.Text =
    "WBSカラム設定";

lblTitle.Font =
    new Font(
        "Meiryo UI",
        14,
        FontStyle.Bold);

lblTitle.Location =
    new Point(20, 15);

lblTitle.AutoSize = true;

一覧位置修正


修正前

dgvColumns.Dock =
    DockStyle.Top;

修正後

dgvColumns.Location =
    new Point(20, 60);

dgvColumns.Size =
    new Size(640, 320);

空欄行追加ボタン

btnAddRow =
    new Button();

btnAddRow.Text =
    "追加";

btnAddRow.Location =
    new Point(20, 400);

btnAddRow.Width = 80;

ボタン位置調整

btnUp.Location =
    new Point(120, 400);

btnDown.Location =
    new Point(200, 400);

btnDelete.Location =
    new Point(280, 400);

btnSave.Location =
    new Point(380, 400);

btnCancel.Location =
    new Point(480, 400);

Controls.Add追加

Controls.Add(lblTitle);

Controls.Add(btnAddRow);

フォームサイズ調整

ClientSize =
    new Size(700, 470);

2. 項目リスト修正


修正前

combo.Items.AddRange(
    new object[]
    {
        "No",
        "タスク",
        ...
    });

修正後

combo.Items.AddRange(
    new object[]
    {
        "",
        "タスクID",
        "タスク",
        "開始予定",
        "終了予定",
        "開始実績",
        "終了実績",
        "進捗",
        "担当者",
        "予定工数",
        "実績工数",
        "残工数",
        "遅延",
        "遅延理由",
        "カテゴリ",
        "工程"
    });

ポイント

修正 理由
空文字 未設定可能
No削除 不要
タスクID追加 管理用

3. WbsColumnSettingForm.cs 修正


コンストラクタ修正

btnAddRow.Click +=
    btnAddRow_Click;

空欄行追加メソッド

private void btnAddRow_Click(
    object sender,
    EventArgs e)
{
    dgvColumns.Rows.Add(
        dgvColumns.Rows.Count + 1,
        false,
        "");
}

4. LoadData() 修正


修正前

dgvColumns.Rows.Add(
    s.No,
    s.Fixed,
    s.ColumnName);

修正後

dgvColumns.Rows.Add(
    dgvColumns.Rows.Count + 1,
    s.Fixed,
    s.ColumnName);

5. Save処理修正

空欄除外追加。


修正前

_settings.Add(
    new WbsColumnSetting

修正後

string columnName =
    row.Cells["ColumnName"]
        .Value?
        .ToString()
    ?? "";

if (string.IsNullOrWhiteSpace(
    columnName))
{
    continue;
}

_settings.Add(
    new WbsColumnSetting
    {
        No = _settings.Count + 1,

        Fixed =
            Convert.ToBoolean(
                row.Cells["Fixed"]
                    .Value),

        ColumnName =
            columnName
    });

6. WbsColumnSettingService.cs 修正


CreateDefault() 修正


修正前

"タスク",

修正後

"タスクID",
"タスク",

7. WbsForm.cs 修正


SetCellValue追加


追加

SetCellValue(
    gridRow,
    "タスクID",
    row.Id);

8. GanttRow.cs 修正


追加

public Guid Id
{
    get;
    set;
}

9. WbsService.cs 修正


Row生成時追加

Id = task.Id,

完成後UI


画面

┌──────────────────────────┐
│ WBSカラム設定            │
├──────────────────────────┤
│No│固定│項目             │
│1 │ON │タスクID          │
│2 │ON │タスク            │
│3 │OFF│担当者            │
│4 │OFF│                  │
├──────────────────────────┤
│追加 ↑ ↓ 削除 更新 取消  │
└──────────────────────────┘

実装、起動確認

実際に実装、動かしてみるとこうなります。
image.png

まとめ

WBSの実用化も一旦完了かと思います。
次回はAIと相談しつつ機能の追加をしていく予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?