将HWND转换为IntPtr(CLI)

我的C ++ MFC代码中有一个HWND,我想将这个HWND传递给C#控件并将其作为IntPtr。 我的代码有什么问题,我该怎么做才能正确? (我认为这是使用CLI指针的错误,因为我得到一个错误,它无法从System :: IntPtr ^转换为System :: IntPtr。但我不知道如何让它完全正常工作。 ..) 我的C ++ MFC代码: HWND myHandle= this->GetSafeHwnd(); m_CLIDialog->UpdateHandle(myHandle); 我的C#代码: public void UpdateHandle(IntPtr mHandle) { …… } 我的CLI代码: void CLIDialog::UpdateHandle(HWND hWnd) { System::IntPtr^ managedhWnd = gcnew System::IntPtr(); HWND phWnd; // object on the native heap try { phWnd = (HWND)managedhWnd->ToPointer(); *phWnd = *hWnd; //Deep-Copy the Native […]

ViewModel在action方法中获取null值

我正在使用ViewModel来检索控制器操作中输入的数据。 但ViewModel在其属性中获取空值。 我正在创建一个局部视图 在该局部视图中,我通过绑定ViewModel创建下拉列表 ,然后我在其他视图中 渲染该局部视图 以下是我的代码 我的ViewModel: public class LookUpViewModel { RosterManagementEntities rosterManagementContext = new RosterManagementEntities(); public LookUpViewModel() { tblCurrentLocations = from o in rosterManagementContext.tblCurrentLocations select o; tblStreams = from o in rosterManagementContext.tblStreams select o; } [Required] public virtual IEnumerable tblCurrentLocations { get; set; } [Required] public virtual IEnumerable tblStreams { get; set; } […]

什么是C#相当于PHP的“self ::”?

在C#中,当我想从该类的另一个静态方法调用类的静态方法时,是否有一个我可以使用的generics前缀 ,例如PHP的self::而不是类名? 所以在下面的例子中,我不是说Customer.DatabaseConnectionExists() ,而是如何说出类似Self.DatabaseConnectionExists()东西,所以后来如果我更改类的名称我不必更改所有的前缀? class Customer { public string FirstName { get; set; } public string LastName { get; set; } public static Customer GetCurrentCustomer() { if (Customer.DatabaseConnectionExists()) { return new Customer { FirstName = “Jim”, LastName = “Smith” }; } else { throw new Exception(“Database connection does not exist.”); } } public static bool […]

在C#中将十进制或字符串转换为货币的最佳方法?

我一直在努力找到根据我的选择将十进制/字符串转换为货币的最佳方法。 public static string returnWaluta(string varS, string varSymbol) { decimal varD = decimal.Parse(varS); if (varSymbol == “EUR”) { Thread.CurrentThread.CurrentCulture = new CultureInfo(“fr-FR”, false); return String.Format(“{0:c}”, varD); } else if (varSymbol == “PLN”) { Thread.CurrentThread.CurrentCulture = new CultureInfo(“pl-PL”, false); return String.Format(“{0:c}”, varD); } else if (varSymbol == “USD”) { Thread.CurrentThread.CurrentCulture = new CultureInfo(“en-US”, false); return String.Format(“{0:c}”, […]

关于在c#中使用新约束

我从不使用新的约束,因为我不清楚使用它。 在这里,我发现了一个样本,但我只是不明白使用。 这是代码 class ItemFactory where T : new() { public T GetNewItem() { return new T(); } } public class ItemFactory2 where T : IComparable, new() { } 所以任何人都请让我理解使用新的Constraint与小而简单的样品,以供现实世界使用。 谢谢

更改Windows窗体中的内容

我正在使用Windows窗体在C#中创建一个应用程序,我想完全换掉Windows窗体中的所有内容并用其他东西替换它。 有没有方便的方法呢? 示例:我有一个菜单,当我点击“开始”时我希望菜单消失并开始游戏。 我没有使用XNA或类似的东西,这是整个项目的重点。

从方法返回datareader

我有以下方法 public static SqlDataReader MenuDataReader(string url) { using (SqlConnection con = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand(“spR_GetChildMenus”, con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue(“@PageUrl”, url); cmd.Parameters.AddWithValue(“@MenuId”, ParameterDirection.Output); cmd.Parameters.AddWithValue(“@ParentId”, ParameterDirection.Output); cmd.Parameters.AddWithValue(“@TitleText”, ParameterDirection.Output); cmd.Parameters.AddWithValue(“@ExternalUrl”, ParameterDirection.Output); cmd.Parameters.AddWithValue(“@FullUrl”, ParameterDirection.Output); cmd.Parameters.AddWithValue(“@ChildCount”, ParameterDirection.Output); con.Open(); SqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) { //return reader; while (reader.Read()) { return reader; } […]

如何使用sqlite创建asp.net Web应用程序

我想在asp.net中使用sqlite开发小应用程序,实际上我不知道如何在应用程序中使用sqlite。 任何人都可以提供逐步过程的链接,以便在c#后面的asp.net代码中创建应用程序。

在Windows服务中获取计算机名称?

在.NET Windows服务(C#)中,如何获取计算机名称? 这是一个可靠的方法,还是应该将它包装在try / catch中?

选择随机字符

我有一些字符: chars = “$%#@!*abcdefghijklmnopqrstuvwxyz1234567890?;:ABCDEFGHIJKLMNOPQRSTUVWXYZ^&”.ToCharArray(); 现在我正在寻找一种从这些中返回随机字符的方法。 我发现了一个可能有用的代码: static Random random = new Random(); public static char GetLetter() { // This method returns a random lowercase letter // … Between ‘a’ and ‘z’ inclusize. int num = random.Next(0, 26); // Zero to 25 char let = (char)(‘a’ + num); return let; } 这段代码返回一个字母表中的随机字符,但只返回小写字母