[英]How to replace text using drag and drop from listbox to a textbox in WPF?
我是WPF和C#的新手。 我有将字符串从列表框拖放到文本框的代码,但是,我希望该拖放覆盖/替换当前文本框中的文本。 现在,将文本插入放置鼠标所在位置的文本框字符串中。 到目前为止,这里是我拥有的WPF和事件处理程序。 提前致谢。
<ListBox Name="listbox1" HorizontalAlignment="Left" Height="115" Margin="100,75,0,0"
VerticalAlignment="Top" Width="150" PreviewMouseDown="listbox1_MouseDown">
<ListBoxItem Content="Coffie"></ListBoxItem>
<ListBoxItem Content="Tea"></ListBoxItem>
<ListBoxItem Content="Orange Juice"></ListBoxItem>
<ListBoxItem Content="Milk"></ListBoxItem>
<ListBoxItem Content="Iced Tea"></ListBoxItem>
<ListBoxItem Content="Mango Shake"></ListBoxItem>
</ListBox>
<TextBox Name="textbox1" HorizontalAlignment="Left" Height="23" Margin="351,75,0,0" TextWrapping="Wrap"Text="" VerticalAlignment="Top" Width="120" SpellCheck.IsEnabled="True" Cursor="IBeam"
AcceptsReturn="True" AllowDrop="True" PreviewDragOver="textbox1_PreviewDragOver"
DragEnter="textbox1_DragEnter" Drop="textbox1_Drop"/>
private void listbox1_MouseDown(object sender, MouseButtonEventArgs e)
{
if (listbox1.SelectedItems.Count > 0)
{
ListBoxItem mySelectedItem = listbox1.SelectedItem as ListBoxItem;
if (mySelectedItem != null)
{
DragDrop.DoDragDrop(listbox1, mySelectedItem.Content.ToString(), DragDropEffects.Copy);
}
}
}
private void textbox1_PreviewDragOver(object sender, DragEventArgs e)
{
e.Handled = true;
}
private void textbox1_DragEnter(object sender, DragEventArgs e)
{
textbox1.Clear();
e.Effects = DragDropEffects.Copy;
}
private void textbox1_Drop(object sender, DragEventArgs e)
{
string tstring;
tstring = e.Data.GetData(DataFormats.StringFormat).ToString();
textbox1.Text= tstring;
}
尝试处理Preview Drop事件而不是Drop
:
private void textbox1_PreviewDrop(object sender, DragEventArgs e)
{
e.Handled = true;
string tstring;
tstring = e.Data.GetData(DataFormats.StringFormat).ToString();
textbox1.Text = tstring;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.