我目前正在开发一个 Windows 窗体应用程序,用于比较 C# 中的 2 个 pdf 文件,为此,用户将这 2 个文件放入 2 个单独的列表框中,在我的情况下,一个是“原始”,一个是"new",对于验证目的我想知道是否能够将每个列表框删除的文件数量限制为 1 个。
public Compare()
{
InitializeComponent();
AllowDrop = true;
OriginalDrop_LstBox.DragDrop += new DragEventHandler(OriginalDrop_LstBox_DragDrop);
OriginalDrop_LstBox.DragEnter += new DragEventHandler(OriginalDrop_LstBox_DragEnter);
NewDrop_LstBox.DragDrop += new DragEventHandler(NewDrop_LstBox_DragDrop);
NewDrop_LstBox.DragEnter += new DragEventHandler(NewDrop_LstBox_DragEnter);
}
private void OriginalDrop_LstBox_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.All;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void OriginalDrop_LstBox_DragDrop(object sender, DragEventArgs e)
{
string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
for (int i = 0; i < s.Length; i++)
{
OriginalDrop_LstBox.Items.Add(s[i]);
}
}
最佳答案
获取数据并在计数与您期望的不匹配时拒绝它:
private void OriginalDrop_LstBox_DragEnter(object sender, DragEventArgs e)
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
var files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (files.Length == 1 && OriginalDrop.Items.Count == 0)
{
e.Effect = DragDropEffects.All;
}
else
{
e.Effect = DragDropEffects.None;
}
}
关于c# - 如何只允许将一个文件放入列表框控件c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50157807/