0

私が持っている ATM は検索ボックスと 4 つのリストです リストは禁止リストです 禁止 限定 半限定

今私がやりたいことは、検索ボックスからアイテムをドラッグしたときに、それが追加された(完了した)リストに応じて、その横に番号を付けてテキストファイルに書き込むことです。ライン例

テキストドキュメントは次のように機能します

#Built using DevPro card editor. !new
#forbidden 
1 0
#limit 
1027 1
#semi limit 
12376 2

私が今それを機能させている方法は、このように印刷します

#Built using DevPro card editor.
!new
#forbidden
#limit
#semi limit
1 0
1027 1
12376 2

最初の例のように書きたいので、アイテムを禁止リストにドラッグすると、他の 2 つと同じように #forbidden の下に書き込まれます。これは、ドラッグ ドロップ イベントに現在使用しているコードです。

private void List_DragDrop(object sender, DragEventArgs e)
{
    int cardid = Int32.Parse((string)e.Data.GetData(DataFormats.Text));
    var list = (ListBox)sender;
    int indexOfItemUnderMouseToDrop = list.IndexFromPoint(list.PointToClient(new Point(e.X, e.Y)));
    if (e.Data.GetDataPresent(DataFormats.StringFormat))
    {
        if (!BannedList.Items.Contains(e.Data.GetData(DataFormats.Text)) && !LimitedList.Items.Contains(e.Data.GetData(DataFormats.Text))
                && !SemiLimitedList.Items.Contains(e.Data.GetData(DataFormats.Text)))
        {
            if (indexOfItemUnderMouseToDrop >= 0 && indexOfItemUnderMouseToDrop < list.Items.Count)
                {
                list.Items.Insert(indexOfItemUnderMouseToDrop, e.Data.GetData(DataFormats.Text));
                }
            else
            {
                list.Items.Add(e.Data.GetData(DataFormats.Text));
                if (BannedList.Items.Contains(e.Data.GetData(DataFormats.Text)))
                {
                    using (var writer = new StreamWriter("lflist.conf", true))
                    writer.WriteLine(Program.CardData[cardid].Id + " 0");
                }
                else if (LimitedList.Items.Contains(e.Data.GetData(DataFormats.Text)))
                {
                    using (var writer = new StreamWriter("lflist.conf", true))
                    writer.WriteLine(Program.CardData[cardid].Id + " 1");
                }
                else if (SemiLimitedList.Items.Contains(e.Data.GetData(DataFormats.Text)))
                {
                    using (var writer = new StreamWriter("lflist.conf", true))
                    writer.WriteLine(Program.CardData[cardid].Id + " 2");
                }
            }
        }
        else
        {                    
            if (BannedList.Items.Contains(e.Data.GetData(DataFormats.Text)))
                MessageBox.Show(Program.CardData[cardid].Name + " is already contained in the Banned list.");
            else if (LimitedList.Items.Contains(e.Data.GetData(DataFormats.Text)))
                MessageBox.Show(Program.CardData[cardid].Name + " is already contained in the Limited list.");
            else if (SemiLimitedList.Items.Contains(e.Data.GetData(DataFormats.Text)))
                MessageBox.Show(Program.CardData[cardid].Name + " is already contained in the SemiLimited list.");
        }
    }
} 

つまり、問題は、ストリームライターに行を見つけて、その下の行に書き込む方法です

4

0 に答える 0