从DataGridView获取DataTable,尊重filter和排序

我有一个System.Windows.Forms.DataGridView填充数据。 我正在使用这样的代码: System.Data.DataTable dataTable1; System.Windows.Forms.BindingSource bindingSource1; System.Windows.Forms.DataGridView dataGridView1; // (…) bindingSource1.DataSource = dataTable1; dataGridView1.DataSource = bindingSource1; bindingSource1.Filter = “Some Filter Here”; 我现在需要的是恢复dataGridView1的数据。 但它不需要复杂。 我的dataGridView1是readonly所以我唯一需要的是尊重订单和使用的filter,并将数据导出到DataTable 。 有人可以帮帮我吗?

linq查询表

如何将以下代码转换为linq或谓词表达式: List list1 = new List {1,2,3,4,5}; List list2= new List {2,3,4,5,6,7}; foreach (int int1 in list1) list2.Remove(int1);

模糊的通用限制T:class vs T:struct

此代码生成编译器错误,该成员已使用相同的参数类型定义。 private T GetProperty(Func GetFunc) where T:class { try { return GetFunc(Properties.Settings.Default); } catch (Exception exception) { SettingReadException(this,exception); return null; } } private TNullable? GetProperty(Func GetFunc) where TNullable : struct { try { return GetFunc(Properties.Settings.Default); } catch (Exception ex) { SettingReadException(this, ex); return new Nullable(); } } 有干净的工作吗?

同步线程访问和C#写入

我有一个用C#编写的multithreading端口扫描程序应用程序,我想在应用程序运行时将一些内容打印到控制台和日志文件。 出于这个原因,我有以下帮助器类,它可以很好地写入日志文件和控制台。 public class Output { private const string LOG_DIRECTORY = “Logs”; private readonly string LogDirPath = Path.Combine(Directory.GetCurrentDirectory(), LOG_DIRECTORY); private static Output _outputSingleton; private static Output OutputSingleton { get { if (_outputSingleton == null) { _outputSingleton = new Output(); } return _outputSingleton; } } public StreamWriter SW { get; set; } public Output() { EnsureLogDirectoryExists(); […]

JIT拒绝内联微小的方法

我缺少严肃的优化,因为JIT不会内联我的很多方法。 例如,让我们有以下代码: static void Main(string[] args) { IsControl(‘\0’); } public static bool IsControl(char c) { return ((c >= 0 && c = 127 && c <= 159)); } 在JIT编译之后生成以下内容: 0000001f xor ecx,ecx 00000021 call FFFFFFFFFFEC9760 00000026 mov byte ptr [rsp+20h],al 0000002a nop 0000002b jmp 000000000000002D 0000002d add rsp,38h 00000031 rep ret 请注意, 0000001f是我设置断点的地方。 如你所见,在00000021有一个电话,这是绝对错误的。 为什么这么小的方法不适合内联? […]

向RS232发送电压

我知道我们可以使用3号引脚将数据作为输出发送到RS232。 但我只是想知道还有另一种方法只能在短时间内将电压5v发送到RS232? 我只想让5v触发PIC微控制器来做某事。 先感谢您。

禁用wpf窗口上的鼠标事件以及放置在其上的用户控件

我有一个wpf窗口,上面有许多用户控件。 我应该使用哪个事件/函数来限制主窗口上的鼠标输入,用户控制它是托管

将Clarion Procedure声明转换为C#DLLImport

如何将此Clarion过程声明转换为C#? 它是用C编写的第三方DLL的一部分,它没有太多文档。 我已经列出了正常工作的Clarion方法的原型。 在C#中,我不确定用什么类型替换*CString 。 我试过像@DanielC建议的char[] ,但它没有用。 我还发现Clarion long是32位(感谢@ shf301)。 号角: SendRequest Procedure(*CString xData,Long DataLen,Long xTimeout),Byte,Virtual C#(我试过的,哪个不起作用): [DllImport(“3RD_PARTY_API.dll”)] private static extern long SendRequest(ref string xData, int DataLen, int xTimeout); 当我在C#中调用SendRequest方法时,我从VS2010获得了标准的PInvokeStackImbalance检测错误。 我认为这是参数类型的问题,而不是DllImport声明中的CharSet或EntryPoint 。 我真的只是坚持如何将*CString转换为有效的C#类型。

在c#中生成PDF后自动打印?

我正在开发一个计费应用程序,在该项目中我需要生成一个PDF,因为我使用’iTextSharp.dll’来生成pdf。 它工作正常。 生成PDF后,我需要自动打印该PDF文件而无需任何操作。 我的PDF生成代码如下: PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(“d:\\Bill1.pdf”, FileMode.Create)); document.Open(); document.Add(table1); document.close();

混淆是可能的混淆

自从上一周以来,我一直在努力解决这个问题。 我混淆了我的应用程序的exe。 我们的应用程序是在线Web应用程序的离线工具 客户端将安装此应用程序并连接到Internet,应用程序将下载相关信息并存储在客户端计算机上的xml文件中以供进一步显示。 出于安全考虑,我们正在加密这些xml文件。 不幸的是,我们在exe内部有一个方法GetCryptXML,它将读取客户端机器上的加密settings.xml并在解密后返回它。 此setting.xml也包含其他xml的加密密钥。 我面临的问题是,即使在混淆之后,人也可以通过传递混淆的名称来调用GetCryptXML方法。 有什么方法可以解决这个问题吗? 这是我解决问题的想法,但我不确定如何实施。 我的想法:只有通过使用InvokeMember()函数进行reflection才能调用我的函数。 在可以调用此函数之前,他/她需要使用此函数来加载程序集。 Assembly.LoadFrom(“myapplication.exe”) 如果myapplication.exe中的代码可以识别哪个应用程序试图加载我,那么我们可以限制它们加载,如果它不是应用程序。 我不知道怎么解决。 任何帮助是极大的赞赏。 谢谢。