0

我有一个带有网络打印机共享名称列表的列表视图,即 \\server\printer1.pcl5 如果我尝试转换 listview.selecteditems.tostring() 它会在字符串周围添加其他数据因此不起作用,打印机也共享c# 需要额外的 \\ 来解析名称。

真的有2个问题,双击listview项目时如何将\\server\\printer1.pcl5转换为\\\\server\\printer1.pcl5

那么如何将它插入到 SHAREDPRINTERNAMEGOESHERE 的 addwindowsprinterconnection 位中?因为它没有从 listviewitem 正确转换为字符串,所以将其存储为“ListViewItem {\\server\printer1.pcl5}”

private void ListView1_DoubleClick(object sender, EventArgs e)
    {

        foreach (ListViewItem item in listView1.SelectedItems)
        {

            WshNetwork objNetwork = new WshNetwork();
            objNetwork.AddWindowsPrinterConnection("SHAREDPRINTERNAMEGOESHERE", "HPLJ4100", "\\\\SERVER\\main printer");
        }
    }
4

1 回答 1

1

您如何尝试获得所选项目的价值?这将不起作用:

listView1.SelectedItems.ToString()

上面的代码所做的是获取对象类型的完全限定名称,在本例中是 ListViewItems 的集合。

要获得所选项目的实际价值,您必须执行以下操作:

string printerShareName = listView1.SelectedItems[0].Text;

请记住,如果您打开了 MultiSelect,上面的代码将只获得选择的第一项。

编辑:

然后,如果您想添加带有附加反斜杠前缀的打印机:

objNetwork.AddWindowsPrinterConnection("SHAREDPRINTERNAMEGOESHERE", "HPLJ4100", "\\" + printerShareName);
于 2012-06-20T10:30:02.533 回答