是否有免费的库可以让我打开pdf并将其显示在winform项目中。我知道我可以在adobereader或其他软件中打开它,但它对我来说总是那么臃肿,我会依赖它的安装。有没有一个很好的轻量级替代方案,我可以在我的项目中包含一个dll或类似的避免外部依赖项。我不需要太多功能,只需查看、更改页面缩放..我看过一些库,但它们似乎是关于创建PDF而不是查看的。 最佳答案 我不确定您所说的“依赖性”是什么,因为除非您将整个PDF渲染源捆绑在您的项目中,否则您总是必须依赖一些外部代码来渲染PDF。有一些商业渲染器和极少数免费渲染器。如果您想避免无
虽然我意识到我可以只在屏幕外显示和隐藏表单,以及许多其他形式的WinFormshackishwizardry,但我宁愿坚持zen路径并正确完成它。我有一个SSRS本地报告(所以没有服务器),我想让用户选择查看或打印(换句话说,我不想强迫他们查看打印)。不幸的是,当我尝试将ReportViewer控件打印为我在代码中显式创建的组件(当然是在using()block内)或者如果我尝试实例化我的查看器表单和只是打印而不显示它。有没有一种适合我的方式来做到这一点,或者我应该在屏幕外展示它并继续我的生活? 最佳答案 我在我的博客上发布了一
例如:intvalue=Int32.MaxValue;unchecked{value+=1;}这在哪些方面会有用?你能想到吗? 最佳答案 在以下情况下使用unchecked:您想通过溢出来表达常量(这在指定位模式时很有用)你希望算术溢出而不导致错误后者在计算哈希码时很有用-例如,在NodaTime中该项目是用经过检查的算法构建的,用于除哈希代码生成之外的虚拟所有内容。在计算哈希码时,发生溢出是完全正常的,这很好,因为我们并不真正关心作为一个数字的结果——我们只是希望它作为一个位模式,真的。这只是一个特别常见的示例,但在其他情况下您可
我正在接触EntityFramework,想知道是否有一种方法可以让我在不发生模型绑定(bind)的情况下检查模型状态。假设我主要通过代码创建一个用户,有没有办法让我在更新之前根据我预定义的数据注释检查它是否有效?publicActionResultIndex(){Useru=newUser();u.Username="test";u.Password="test";u.Email="test";DefaultContextdb=newDefaultContext();if(ModelState.IsValid){db.Users.Add(u);db.SaveChanges();Res
如果我没有弄错的话,这种行为对我来说很奇怪。我不会解释,而是在下面发布示例代码,请告诉我为什么我得到输出x而不是y。privatevoidbutton1_Click(objectsender,EventArgse){Listl=newList(){1,2,3};Fuss(l);MessageBox.Show(l.Count.ToString());//outputis5}privatevoidFuss(Listl){l.Add(4);l.Add(5);}我假设输出应该是3。但我得到的输出是5。我知道如果我这样做输出可以是5:privatevoidbutton1_Click(object
我在MSDN上读到:Thenullkeywordisaliteralthatrepresentsanullreference,onethatdoesnotrefertoanyobject.但是我看到下面的代码运行时没有抛出任何异常:int?i=null;vars=i.ToString();那么如果变量i为null,为什么我可以执行它的方法呢? 最佳答案 因为int?实际上是一个Nullable和Nullable是struct,和一个结构cannotbenull.就是这样Nullabletypeswork.它们不是引用值,所以它们不能
我经常发现自己需要创建一个类作为某些数据的容器。它只被短暂使用,但我仍然必须创建类。像这样:publicclassTempObject{publicstringLoggedInUsername{get;set;}publicCustomObjectSomeCustomObject{get;set;}publicDateTimeLastLoggedIn{get;set;}}publicvoidDoSomething(){TempObjecttemp=newTempObject{LoggedInUsername="test",SomeCustomObject=//blahblahblah,
我打算学习C#并开始编写Windows.exe应用程序,但唯一阻碍我的是并非所有潜在用户都安装了.NET框架,因此无法运行我的应用程序。有什么解决办法吗?谢谢! 最佳答案 没有。c#仅目标.NET(或类似的框架,例如mono)。顺便说一句,Win7预装了.NET,我相信Vista也是如此。还有大量需要.NET的MS应用程序。它在Windows机器上几乎无处不在,所以我不会担心它。 关于c#-C#应用程序可以在没有.NET框架的情况下运行吗?,我们在StackOverflow上找到一个类似
我目前正在使用WatiN,发现它是一个很棒的Web浏览自动化工具。但是,截至上一个版本,它的屏幕捕获功能似乎有所欠缺。除了一些thisStackOverflowquestion之外,我已经想出了一个可行的解决方案来从屏幕上捕获屏幕截图(独立生成类似于codebyCharlesPetzold的代码).不幸的是,缺少一个组件:实际窗口在哪里?WatiN方便地向您提供浏览器的hWnd,因此我们可以(通过这个简化的示例)设置为从屏幕复制图像,如下所示://browseriseitheranWatiN.Core.IEoraWatiN.Core.FireFox...IntPtrhWnd=brows
我有两个字段:stringdate1="04/26/10";stringdate2="04/25/10";我怎样才能像这样比较这两个字段?:if(date2是否可以在不先将字段转换为单独的日期类型变量的情况下完成此操作?编辑:我应该提到这些值来自数据库表,其中日期值以字符串格式开头。旧的遗留代码... 最佳答案 不,但在C#中转换为日期并不困难。if(DateTime.Parse(date2,CultureInfo.InvariantCulture)CultureInfo取决于字符串日期在遗留数据库中的格式。请参阅:DateTime