作为标题,我想将1个单元格从datagridview拖到richtextbox?我尝试使用我的代码,但它不起作用。我在构造函数中设置了rtb_ArticleTemplate.AllowDrop = true并且我设置了richtextbox的EnableAutoDragDrop为true
private void rtb_ArticleTemplate_DragEnter(object sender, DragEventArgs e)
{
string tt = e.Data.GetData(DataFormats.Text).ToString();
if (e.Data.GetDataPresent(DataFormats.Text))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
private void rtb_ArticleTemplate_DragDrop(object sender, DragEventArgs e)
{
int i;
String s;
// Get start position to drop the text.
i = rtb_ArticleTemplate.SelectionStart;
s = rtb_ArticleTemplate.Text.Substring(i);
rtb_ArticleTemplate.Text = rtb_ArticleTemplate.Text.Substring(0, i);
// Drop the text on to the RichTextBox.
rtb_ArticleTemplate.Text = rtb_ArticleTemplate.Text + e.Data.GetData(DataFormats.Text).ToString();
rtb_ArticleTemplate.Text = rtb_ArticleTemplate.Text + s;
}
private void dgv_Xpath_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
DataGridView.HitTestInfo info = dgv_Xpath.HitTest(e.X, e.Y);
if (info.RowIndex >= 0)
{
if (info.RowIndex >= 0 && info.ColumnIndex >= 0)
{
string text = (string)
dgv_Xpath.Rows[info.RowIndex].Cells[info.ColumnIndex].Value;
if (text != null)
dgv_Xpath.DoDragDrop(text, DragDropEffects.Copy);
}
}
}
}
答案 0 :(得分:0)
你的妓女错了。如果它返回DragDropEffects.None,它将阻止拖动操作。如果您将代码更改为始终返回copy iso none,您将看到dragoperation将成功。 使用调试器来播放一个小位,看看在拖动过程中输入的数据格式是什么。将鼠标悬停在DragEvents的e上并完全检查其值。这是您需要解决问题的地方。