如何当按下ctrl+c时,把listbox中选择的数据复制下来,然后可以按ctrl+v复制到文件中。

解决方案 »

  1.   

    我搞不懂你的复制到文件上是什么意思,如果只是类似在记事本上粘贴的话,只需要你用窗口来捕获^C,然后完全可以用剪切板.SetData把你Select的条目放到剪切板上.
      

  2.   

    是这个意思,就是把listbox上的选择内容复制到剪切板上。
      

  3.   

    在listBox的keydown事件里写if(e.KeyData == Keys.C && e.Control)
    {
    Clipboard.SetDataObject(listBox1.SelectedItem.ToString());
    }
      

  4.   

    加循环然后加上
    在listBox的keydown事件里写if(e.KeyData == Keys.C && e.Control)
    {
    Clipboard.SetDataObject(listBox1.SelectedItem.ToString());
    }
      
    这代码就好了
      

  5.   

    循环整个listBox
    如果第i行选中了,负值给一个变量
    依此类推
    然后
    Clipboard.SetDataObject(i);
      

  6.   

    看了半天,也没有搞出来怎么循环listbox,没有办法啊,菜鸟啊,谁能友情提供一段代码!感谢。
      

  7.   

    if(e.KeyData == Keys.C && e.Control)
    {
        string val = "";
    for(int i=0;i<listBox1.SelectedItems.Count;i++)
    {
    val += listBox1.SelectedItems[i].ToString()+"\r\n";
    }
    Clipboard.SetDataObject(listBox1.SelectedItem.ToString());
    }
      

  8.   

    汗,忘了改了
    if(e.KeyData == Keys.C && e.Control)
    {
        string val = "";
    for(int i=0;i<listBox1.SelectedItems.Count;i++)
    {
    val += listBox1.SelectedItems[i].ToString()+"\r\n";
    }
    Clipboard.SetDataObject(val);
    }
      

  9.   

    如果我使用一个按钮去触发复制事件,是可以的,也就是说
    string val = "";
    for(int i=0;i<listBox1.SelectedItems.Count;i++)
    {
    val += listBox1.SelectedItems[i].ToString()+"\r\n";
    }
    Clipboard.SetDataObject(val);
    是没有问题的,但是如果是捕捉listbox的keydown事件,还是不能复制成功。
      

  10.   

    没有进去,不知道为什么?我的代码
    private void ls_Data_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if(e.KeyData == Keys.C && e.Control)
    {
    string val = "";
    for(int i=0;i<ls_Data.SelectedItems.Count;i++)
    {
       val += ls_Data.SelectedItem[i].ToString()+"\r\n";
    }
    Clipboard.SetDataObject(val);
    } }
      

  11.   

    if(e.KeyData == Keys.C && e.Control) 
    这句有没有执行?如果没有,说明这个函数根本没有绑定到listbox
      

  12.   

    if(e.KeyData == Keys.C && e.Control)这句是执行了的,没有进if块中去执行string val = "";
    for(int i=0;i<ls_Data.SelectedItems.Count;i++)
    {
       val += ls_Data.SelectedItem[i].ToString()+"\r\n";
    }
    Clipboard.SetDataObject(val);
      

  13.   

    你确定是按了ctl+C ?而且焦点在listbox上?
      

  14.   

    再跟踪一下。看看e.keydata和e.control的值是多少。会不会是你的control键坏了
      

  15.   

    this.listBoxFileList.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.listBoxFileList_KeyPress);private void listBoxFileList_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar == 3) //Crtl+C
    {
    Clipboard.SetDataObject(listBoxFileList.Text.Trim());
    }
    }
      

  16.   

    Joy_Zhao(面具) 的方法是可以的,同时也感谢vosov(ask a favor of wind...)