小编net*_*cat的帖子

打开文件对话框,多个Excel扩展的一个过滤器?

我想使用OpenFileDialog对象浏览到excel文件.我想设置过滤器打开具有不同类型的excel扩展名的文件,如:.xls,.xlsm,.xlsx等.

我正在使用的是:

OpenFileDialog of = new OpenFileDialog();
of.Filter = "Excel Files(.xls)|*.xls| 
    Excel Files(.xlsx)|*.xlsx| Excel Files(*.xlsm)|*.xlsm";
Run Code Online (Sandbox Code Playgroud)

这有效,但用户必须从OpenFileDialog的下拉列表中选择正确的excel文件类型.

有谁知道是否有办法为所有类型的Excel扩展应用一个过滤器?

类似于:"... Excel文件(.xls,.xlsx,.xlxm)|*.xls,*.xlsx,*.xlsm;"

提前感谢您的回复.

c# openfiledialog winforms

58
推荐指数
2
解决办法
10万
查看次数

File.Copy会阻止其他应用写入文件吗?

我想复制一些由另一个应用程序编写的文本文件,但我不想做任何事情来阻止其他应用程序.从写入这些文件.

我使用File.Copy,从System.IO namespace,C#.NET框架2.0.

我检查了MSDN的文档,但没有具体说明File.Copy使用的方法.它是非托管API调用的包装器吗?

是否File.Copy锁定,或阻止正在复制文件以任何方式?

在此先感谢您的任何信息.

c# file-io file file-copying

7
推荐指数
1
解决办法
353
查看次数

无法使用 GDI+。可以使用 Windows API 调用在位图上绘制一条线吗?

我们有一个用 C++ 6 编写的应用程序,可以填充交通地图上的空白多边形以显示当前的交通状况。绿色表示良好,黄色表示拥挤,等等。

“壳图”是使用未填充任何内容的矩形和多边形的道路位图。从道路传感器(导线感应器环路)收集数据,并根据环路检测器数据填充多边形。

当地图发生变化时,必须有人在绘图中手动放大位图,并获取每个新形状内部周围的坐标,其中将填充拥塞颜色。构成地图骨架的多边形均以海军蓝色绘制,在白色背景上。

我做了一个应用程序。当用户单击多边形白色部分内的任意位置时,将向用户显示内部周界的点,并显示已绘制的内部许可者的放大缩略图。

在.Net 中,周界被完美地绘制。

在 C++ 6 应用程序中,一些多边形指向我的应用程序。收集无法正确显示。

我查看了 msPaint,发现 .Net 绘制点的方式与 MS Paint 不同。

这是一个简单的例子。代码来自一种表单,带有一个按钮和一个标签。在位图上绘制一条线,将位图“放大”以便您可以看到它,并显示在标签上。

如果您在 Paint 中使用相同的两个点绘制一条线,则绘制的线段与您在 MS Paint 中绘制的线段不同。

  private void button1_Click(object sender, EventArgs e)
    {
        Bitmap bm = new Bitmap(16, 16);
        Graphics g = Graphics.FromImage(bm);
        //g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;
        //g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
        //g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighSpeed;
        //g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.None;
        g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Default;
        Point pt = new Point(1, 3);
        Point pt2 = new Point(5, 1);
        // If you reverse the points, the same line …
Run Code Online (Sandbox Code Playgroud)

c# bitmap bitmapdata

2
推荐指数
1
解决办法
2195
查看次数

将文本复制到MFC中的剪贴板

我试图制定一种快速的方法来在MFC中设置剪贴板文本,但这不起作用。

void CopyTextToClipBoard( CString strText)
{
    if (OpenClipboard(GetFrame()->GetSafeHwnd()))
    {
        EmptyClipboard() ;  
        SetClipboardData (CF_TEXT, strText.GetBuffer() ) ;
        CloseClipboard () ;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在“ setClipboardData”处收到“ Windows断点”错误。有人知道我做错了吗?

编辑:感谢您的评论。已修改。现在它在以下位置失败:内存复制功能。

void CopyTextToClipBoard( CString strText)
{
if (OpenClipboard(GetFrame()->GetSafeHwnd()))
{
    HGLOBAL hglbCopy;
      LPTSTR  lptstrCopy;
    hglbCopy = GlobalAlloc(GMEM_MOVEABLE, (strText.GetLength() + 1) * sizeof(TCHAR)); 
    if (hglbCopy == NULL) 
    { 
        CloseClipboard(); 
        return ; 
    } 
    memcpy(GlobalLock(hglbCopy), &strText, strText.GetLength() + 1 * sizeof(TCHAR));      
    GlobalUnlock(hglbCopy);  
    SetClipboardData(CF_TEXT, hglbCopy); 
    EmptyClipboard() ;    
    SetClipboardData (CF_TEXT, strText.GetBuffer() ) ;
    CloseClipboard () ;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:使用这个旧的msdn示例。

const char* output …
Run Code Online (Sandbox Code Playgroud)

c++ mfc

2
推荐指数
2
解决办法
4686
查看次数

标签 统计

c# ×3

bitmap ×1

bitmapdata ×1

c++ ×1

file ×1

file-copying ×1

file-io ×1

mfc ×1

openfiledialog ×1

winforms ×1