gpt4 book ai didi

c# - 从 WPF 拖放到记事本

转载 作者:行者123 更新时间:2023-11-30 22:23:34 28 4
gpt4 key购买 nike

我做了一些研究,发现了这个:

DataObject d = new DataObject();
d.SetData(DataFormats.Serializable, myObject);
d.SetData(DataFormats.Text, myObject.ToString());
myForm.DoDragDrop(d, DragDropEffects.Copy);

在 win 表单中拖放的代码片段。

我尝试像这样实现它 (WPF) :

private void listView1_MouseMove(object sender, MouseEventArgs e)
{
try
{
if (e.LeftButton == MouseButtonState.Pressed)
{
DataObject d = new DataObject();
d.SetData(DataFormats.Serializable, listView1.SelectedItem);
d.SetData(DataFormats.Text, listView1.SelectedItem.ToString());
DragDrop.DoDragDrop(listView1, d, DragDropEffects.Copy);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}

现在我想,当我将 ListViewItem 拖放到记事本中时,它可能会复制所选项目的类名(因为这就是 listView1.SelectedItem.ToString()) 是...但是记事本显示的是一个图片悬停时取消符号,松开鼠标按钮时不复制任何内容。

这样做的总体目标是将类更改为逗号分隔的字符串,这样当它复制粘贴到记事本中时,类的所有数据都将采用良好的格式。

但如果有人能帮我复制类名,我相信我能从那里弄明白:o

最佳答案

所以......是的。

  bool alreadycopying = false;

private void listView1_MouseMove(object sender, MouseEventArgs e)
{
try
{
if (e.LeftButton == MouseButtonState.Released)
{
alreadycopying = false;
}


if (e.LeftButton == MouseButtonState.Pressed && alreadycopying == false)
{
alreadycopying = true;
System.IO.StreamWriter test = new System.IO.StreamWriter(@"C:\SuperSecretTestFile.txt");
test.WriteLine("Test");
test.Close();

List<String> testlist = new List<string>();
testlist.Add(@"C:\SuperSecretTestFile.txt");

DataObject d = new DataObject();
d.SetData(DataFormats.FileDrop, testlist.ToArray<string>());
DragDrop.DoDragDrop(listView1, d, DragDropEffects.All);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}

在对糟糕的记事本技术进行多次抨击之后,C# 取得了胜利<.<

关于c# - 从 WPF 拖放到记事本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13308745/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com