拖放到可编辑的组合框上[重复]

Posted

技术标签:

【中文标题】拖放到可编辑的组合框上[重复]【英文标题】:Drag and drop on editable combobox [duplicate] 【发布时间】:2020-08-11 22:34:15 【问题描述】:

在 WPF 中,我需要将文件拖放到可编辑的组合框中。 我可以放在箭头和组合框的边框上,但不能直接放在主要的白色部分(文本框部分)上。我试图为子文本框添加处理程序,但没有运气。 这是我使用的代码(VB .net,我知道...)

  CType(Combo_Fichier1.Template.FindName("PART_EditableTextBox", Combo_Fichier1), TextBox).AllowDrop = True
  AddHandler CType(Combo_Fichier1.Template.FindName("PART_EditableTextBox", Combo_Fichier1), TextBox).Drop, AddressOf Combo_Fichier1_Drop
  AddHandler CType(Combo_Fichier1.Template.FindName("PART_EditableTextBox", Combo_Fichier1), TextBox).DragEnter, AddressOf Function_DragEnter
  AddHandler CType(Combo_Fichier1.Template.FindName("PART_EditableTextBox", Combo_Fichier1), TextBox).DragOver, AddressOf Function_DragEnter

我的 DragEnter 函数将拖放效果更改为复制(在边框和箭头上工作),而我的拖放函数只需使用文件的名称和路径设置组合框的文本。这是一种带内存的文件选择器。

【问题讨论】:

【参考方案1】:

出现此问题的原因可能是 TextBox 控件支持开箱即用的拖放字符串。因此,它忽略了其他对象。 可以使用 PreviewDragOver 事件来避免此问题,如该线程中所述:https://***.com/a/23150582/12797700

【讨论】:

以上是关于拖放到可编辑的组合框上[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在访问中禁用组合框上的自动完成功能?

由于另一个组合框字符串值,如何更改组合框上的项目?

组合框上的参数值

组合框上 KeyDown 的签名

文件拖放在列表框上不起作用

如何在两个动态生成的组合框上使用不同的值