Tag: c ++

WinForms interthread修改

每当我想从另一个线程修改winform时,我需要使用 ->Invoke(delegate, params) 所以修改发生在winform自己的线程中。 对于需要修改gui的每个函数,我需要另一个委托函数。 是否有一些方案允许我限制所需的委托function的数量? 我有一个控制器类,可以在一个地方处理整个gui,我考虑过重用代表但是闻起来很糟糕。 我认为我的问题可以适用于winform可以运行的所有语言

在entity framework中连接两个表

我正在尝试在entity framework中连接两个表并从其中一个表中获取值以在第三个表上执行另一个查询这是我正在使用的查询 var fav = from favs in db.FAVORITES join pins in db.PINS on new { favs.USER_ID, favs.PIN_ID } equals new { userId, pins.PIN_ID } into res from r in res select new { favs.PIN_ID, r.TYPE_ID }; 但它给我一个语法错误。 在join子句中的一个表达式的类型是不正确的。 在对’GroupJoin’的调用中类型推断失败我已经搜索了错误并发现人们总是说要确保equals子句中的属性是相同的类型,是的是所有类型都是非可空的int

Linq到EF – 不支持的function

我正在使用Linq进行查询,由Entity Framework数据源提供支持。 我收到以下错误: LINQ to Entities无法识别方法’Double Sqrt(Double)’方法,并且此方法无法转换为存储表达式。 这是我的函数的简化版本(我的版本更复杂,使用ACos,sin,cos和其他C#Math类函数)。 var objects = from n in context.Products.Where(p => pr == r) let a = Math.Sqrt((double)n.Latitude) where a < 5 orderby a select n; return objects.Take(100).ToList(); 我认为问题可能与Linq to EF(和SQL数据源)与Linq to SQL相比具有有限的受支持function集的情况有关。 我对此比较陌生,所以我不是百分百肯定。 任何人都可以给我指向正确的方向吗? 干杯,

自定义DataGridView单元格绘画

我正在尝试绘制自己的网格线,因为我想要比默认数据网格视图线更粗的线。 这是我用来做的代码: private void dgv_Wafer_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { using (Pen p = new Pen(Brushes.Black, 12)) { e.Graphics.DrawLine(p, new Point(0, e.CellBounds.Bottom), new Point(e.CellBounds.Right, e.CellBounds.Bottom)); } using (Pen p = new Pen(Brushes.Black, 6)) { e.Graphics.DrawLine(p, new Point(e.CellBounds.Right, 0), new Point(e.CellBounds.Right – 1, e.CellBounds.Bottom)); } } 绘制线条但不会在最后一列绘制水平线条,并且不会在最后一行绘制垂直线条。 这些线条创建的网格是一个列,行太小。 有谁知道如何解决这一问题?

如何保存BitmapImage WinRT

我有BitmapImage: BitmapImage image = new BitmapImage(); image.SetSource(memStream); 我想将图像保存到磁盘以便将来查看。 我找不到一个如何做到这一点的工作示例? 第二个问题。 我需要获得像素的颜色(如: Color cl=image.GetColorPixel(X,Y) ),我该怎么做? 谢谢!

在.NET Windowsapp store应用中替换CultureInfo.GetCultures

.NET API for Windows Store应用程序中不存在CultureInfo.GetCultures。 我们怎样才能阅读所有可用的文化呢? 我知道语言列表和主要的应用程序语言。 我可以通过这种方式阅读应用程序可用的所有语言。 但我需要阅读系统上可用的所有文化(语言)。 以前使用CultureInfo.GetCultures很容易。

DataGridViewComboBoxCell手动设置值,值无效

这是我的代码: private class Person { private string myName; private int myValue; public Person(string name, int value) { myName = name; myValue = value; } public override string ToString() { return myName; } public string Name { get { return myName; } set { myName = value; } } public int Value { get { return […]

Microsoft Bot使用FormFlow从用户接收附件

我正在使用FormFlow设计一个Bot,其中一个输入将要求用户附加文件以继续进行。 我可以在下面看到链接地址类似的问题。 https://github.com/Microsoft/BotBuilder/issues/570 链接中提供的解决方案是使用自定义IRecognizer或如下所示 a)将其放入未暴露给FormFlow的私有字段/属性中。 b)将其作为暴露于forms流的字段的值。 c)使用private属性动态生成允许在它们之间进行选择的字段。 我对Bot框架很天真。 是否有任何示例在使用FormFlow从客户接收附件时实现此目的 。 下面是我的代码片段 enter code here [Serializable] public class DocBot { [Prompt(“What’s your name?”)] public string Name { get; set; } [Prompt(“Hey {&} , Choose the options below? {||}”)] public Service? shaun; [Prompt(“Attach the Document required for further processing?”)] public string Document { get; set; } — […]

VB.Net缺乏隐式接口是否使我想做的事情变得不可能?

我知道VB.Net不允许像C#这样的隐式接口实现。 因此,如下代码没有直接的VB.Net相关性: public interface IBackgroundWorkerAdapter { bool IsBusy { get; set; } bool WorkerReportsProgress { get; set; } bool WorkerSupportsCancellation { get; set; } event DoWorkEventHandler DoWork; event ProgressChangedEventHandler ProgressChanged; event RunWorkerCompletedEventHandler RunWorkerCompleted; void RunWorkerAsync(); void CancelAsync(); void ReportProgress(int progressPercent); void ReportProgress(int progressPercent, object userState); } public class BackgroundWorkerAdapter: BackgroundWorker, IBackgroundWorkerAdapter { } 因此,我在VB.Net中可以想到的最接近的想法是使用Shadows关键字执行以下操作(因为没有任何操作是虚拟的): Public […]

我可以向PasswordCredential.Properties添加自定义属性吗?

在WinRT API中有Windows.Security.Credentials命名空间,其中包含PasswordCredential类。 使用它我们可以加密敏感数据,如用户名和密码,但类本身有一个名为“属性”的属性,它看起来像一个方便的容器,其他自定义属性以某种方式与存储的凭据相关,但我不能让它工作。 文档中的“属性”有一个“只读”访问类型,但我认为这只意味着我无法更改它指向的容器的引用。 我的问题是: PasswordCredential的“Properties”属性是否可用于程序员? 对不起文本中的任何错误,你也可以在答案中更正我的英语,这不是我的母语;) 编辑:这可能是有用的: 以下代码中的“添加”方法抛出ArgumentException: PasswordVault v = new PasswordVault(); PasswordCredential c = new PasswordCredential(“TEST”, “TEST”, “TEST”); c.Properties.Add(“Name”, “testName”); v.Add(c);