0

我的自动取款机是一个搜索框和 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

我希望它像第一个例子一样写,所以如果我将一个项目拖到禁止列表,它会在 #forbidden 下写它与其他 2 相同这是我目前用于我的拖放事件的代码

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