ユーザーのゲームコレクションをリストビューに追加し、複数のサブアイテムを追加するゲームライブラリアプリに取り組んでいます。チェックリストボックスであるサブアイテムが 1 つあります。これにより、ゲームがどのプラットフォームまたはシステム用であるかをチェックできます。リストビューの選択されたインデックスのコードを変更しました。これにより、リストビューでアイテムを選択すると、ゲームのタイトルの保存された情報が表示されます。ただし、チェックされたリストボックスから情報を保存し、指定されたゲームを選択したときにユーザーが以前にチェックしたプラットフォームを表示する方法を理解できませんでした。私はすべてをクラスに配置しており、私のコードは以下のとおりです。私は私の中に書き出そうとしf.platformCheckBox.CheckedItems.ToString() = f.Game[f.gameList.SelectedItems[0].Index].platform;
ましたIndexChanged.cs
クラスですが、「割り当ての左側は変数、プロパティ、またはインデクサーでなければなりません」というエラーがスローされます。だから私はそれをすることができません。以下に私のコードを示します。チェックされたリストボックスの内容を保存する方法について誰か提案があれば、大いに感謝します。注: IndexChanged クラスはコードの一番下にあります。コードの他の場所で重要な何かが欠落している場合に備えて、すべてのコードを表示できると考えました。
namespace GameLibrary
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public List<Library> Game = new List<Library>();
public Library lib = new Library();
public void saveBttn_Click(object sender, EventArgs e)
{
Save save = new Save();
save.saveChanges(this);
}
private void button1_Click(object sender, EventArgs e)
{
Add add = new Add();
add.addGame(this);
}
private void deleteBtnClick_Click(object sender, EventArgs e)
{
Delete delete = new Delete();
delete.deleteGame(this);
}
private void gameList_SelectedIndexChanged(object sender, EventArgs e)
{
IndexChanged Index = new IndexChanged();
Index.selectedIndexChanged(this);
}
private void searchBttn_Click_1(object sender, EventArgs e)
{
Search search = new Search();
search.searchLibrary(this);
}
}
public class Library
{
public string gametitle
{
get;
set;
}
public string developer
{
get;
set;
}
public string publisher
{
get;
set;
}
public string platform
{
get;
set;
}
}
class Save
{
public void saveChanges(Form1 f)
{
if (f.gameList.SelectedItems.Count == 1)
{
f.Game[f.gameList.SelectedItems[0].Index].gametitle = f.titleText.Text;
f.Game[f.gameList.SelectedItems[0].Index].developer = f.developerText.Text;
f.Game[f.gameList.SelectedItems[0].Index].publisher = f.publisherText.Text;
f.Game[f.gameList.SelectedItems[0].Index].platform = f.platformCheckBox.CheckedItems.ToString();
}
}
}
class Add
{
public void addGame(Form1 f)
{
f.lib.gametitle = f.titleText.Text;
f.lib.developer = f.developerText.Text;
f.lib.publisher = f.publisherText.Text;
f.lib.platform = f.platformCheckBox.CheckedItems.ToString();
f.Game.Add(f.lib);
f.gameList.Items.Add(f.lib.gametitle);
f.titleText.Clear();
f.developerText.Clear();
f.publisherText.Clear();
foreach (int i in f.platformCheckBox.CheckedIndices)
{
f.platformCheckBox.SetItemCheckState(i, CheckState.Unchecked);
}
}
}
class Search
{
public void searchLibrary(Form1 f)
{
foreach(ListViewItem item in f.gameList.Items)
{
if(item.Text.StartsWith(f.lib.gametitle))
{
item.Selected = true;
item.BackColor = SystemColors.Highlight;
item.ForeColor = SystemColors.HighlightText;
}
else
{
item.Selected = false;
item.BackColor = SystemColors.Window;
item.ForeColor = SystemColors.WindowText;
MessageBox.Show("Game title not found in library");
}
}
if(f.gameList.SelectedItems.Count == 1)
{
f.gameList.Focus();
f.titleText.Text = f.Game[f.gameList.SelectedItems[0].Index].gametitle;
f.developerText.Text = f.Game[f.gameList.SelectedItems[0].Index].developer;
f.publisherText.Text = f.Game[f.gameList.SelectedItems[0].Index].publisher;
f.gameList.SelectedItems[0].Text = f.titleText.Text;
}
}
}
class IndexChanged
{
public void selectedIndexChanged(Form1 f)
{
if(f.gameList.SelectedItems.Count == 1)
{
f.titleText.Text = f.Game[f.gameList.SelectedItems[0].Index].gametitle;
f.developerText.Text = f.Game[f.gameList.SelectedItems[0].Index].developer;
f.publisherText.Text = f.Game[f.gameList.SelectedItems[0].Index].publisher;
f.platformCheckBox.CheckedItems.ToString() = f.Game[f.gameList.SelectedItems[0].Index].platform; //This is where it throws the error
}
}
}
}