1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

メメントモリを楽しく!アプリを作ってみよう!(キャラ一覧)

1
Last updated at Posted at 2025-08-19

キャラ一覧を表示する

まずは、キャラ一覧を表示する画面(フォーム)を用意する。
そのフォームへキャラ一覧(DataGridView)を配置し、キャラ情報をうめる。

キャラ一覧を表示する画面(フォーム)を用意する

普通に、プロジェクトへ「フォーム」を追加する。
ただ、キャラ一覧を表示する画面は全属性を用意する必要がある。
属性の種類は、「紅・藍・翠・黄・天・冥」の計6個。

解決案として考えられるのは、
1.フォームを1つ用意し、TabControlを配置、TabPageを6個用意する。
2.フォームを1つ用意し、そのフォームを「DockContent」化。
  このフォームのインスタンスを6個作成する。

キャラ属性毎に、キャラ一覧が分離して表示できたら便利そうなので、解決案2で行きます。

DockPanel と DockContent

「ドッキング可能」フォームを作りたいと、こぱちゃんに聞くと、「WeifenLuo.WinFormsUI.Docking」パッケージを推してもらった。
ドッキングされる側が「DockPanel」で、ドッキング対象が「DockContent」らしい。
それぞれフォームを用意し、
・ドッキングされるフォームに「DockPanel」を配置する
・ドッキング対象のフォームを「DockContent」から継承する

ドッキング対象のフォームの継承例
※もともと「Form」から継承していたのを「DockContent」に変更する。

using WeifenLuo.WinFormsUI.Docking;
public partial class AttributeForm : DockContent

これで、1つの属性キャラ一覧を表示するフォームができたことになるので、あとはドッキングされるフォームで全属性のフォームを作成する。

private List<AttributeForm> views;
foreach (var attr in [全属性]) {
	views.Add(new AttributeForm());
}
foreach (var view in views) {
	view.DockState = DockState.Document;
}

キャラ一覧(DataGridView)を作成

DataGridViewへキャラ情報を表示する。
DataGridViewは表形式のデータ表示編集コントロールで、「データバインディング」というのを利用するといいと、こぱちゃんからおしえてもらった。

データバインディングを利用するのにあたり、まずは表示元のデータ(1つ分のキャラ情報)を用意する必要があるとのこと。

public class MemeMoriChar
{
	/// <summary>
	/// キャラ識別
	/// </summary>
	public int CharID { get; set; }
	/// <summary>
	/// キャラ名
	/// </summary>
	public string Name { get; set; }
	/// <summary>
	/// 情報URL
	/// </summary>
	public string ContentUrl { get; set; }
	/// <summary>
	/// アイコンURL
	/// </summary>
	public string IconUrl { get; set; }
	/// <summary>
	/// 初期レアリティ
	/// </summary>
	public MemeMoriRarity InitRarity { get; set; }
}

そして、取得したキャラ情報をキャラ個数分セットする。

private List<MemeMoriChar> charListOrg { get; set; }

DataGridViewを作成

private DataGridView dgv { get; set; }
dgv = new DataGridView();
:
: (いろいろプロパティ初期化)
:

データバインディング(カラム情報は、バイディング元から決定)

var bl = new BindingList<MemeMoriChar>(charListOrg);
bl.AllowEdit = true;
bl.AllowNew = false;
dgv.DataSource = bl

あとは、見栄えに応じて、DataGridViewのプロパティを調整していく。

つづく。
https://qiita.com/puyon/items/698b9f874241c32aa89c

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?