我想使用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;"
提前感谢您的回复.
我想复制一些由另一个应用程序编写的文本文件,但我不想做任何事情来阻止其他应用程序.从写入这些文件.
我使用File.Copy,从System.IO namespace,C#.NET框架2.0.
我检查了MSDN的文档,但没有具体说明File.Copy使用的方法.它是非托管API调用的包装器吗?
是否File.Copy锁定,或阻止正在复制文件以任何方式?
在此先感谢您的任何信息.
我们有一个用 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) 我试图制定一种快速的方法来在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)