背景:我正在处理一个涉及 WinForms 应用程序的项目。客户端想要公开一个仅限本地的 HTTP 服务器,以允许其他应用程序通过 REST API(或类似的)在 WinForms 应用程序的运行实例上触发功能。首选是使用 ASP.NET Core 实现上述 API。
因此,我的问题是:如何构建一个项目以在同一进程中同时拥有 ASP.NET Core API 和 WinForms GUI?有什么陷阱我需要警惕吗?
我正在将现有的 Windows 窗体 C# 应用程序迁移到 .NET 5.0,并且我正在尝试按照迁移文档中提供的说明进行操作。一切正常,但还有一件事要做:从 app.config 文件迁移调试/发布设置。
我曾考虑过重用 NET Core 的IConfiguration,但是将 Microsoft.Extensions.Configuration nuget 包添加到项目中(以便我能够创建ConfigurationBuilder实例)似乎会破坏一切(例如,using System;将开始生成编译错误)。
关于发生了什么的任何想法?你们如何将 Windows 窗体应用程序上的设置从 4.8 迁移到 .NET 5.0?
我正在Rebar为.NET 做一个包装器.这是我如何控制自己.
public class Rebar : Control {
public Rebar() : base() {
//Control won't even work if I let UserPaint enabled
SetStyle(ControlStyles.UserPaint, false);
}
protected override CreateParams CreateParams {
get {
CreateParams cp = base.CreateParams;
cp.ClassName = "ReBarWindow32"; //REBARCLASSNAME
cp.ExStyle |= 0x00000080; //WS_EX_TOOLWINDOW
//Windows Forms will control the position and size, not the native control
cp.Style |= 0x00000004 | 0x00000008; //CCS_NORESIZE and CCS_NOPARENTALIGN
return cp;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我通过REBARBANDINFO在控件和IT WORKED中添加一个来测试我的控件.
REBARBANDINFO info = new REBARBANDINFO(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个引用 .net core 3 版本的 winform 的 .net core 3 类库(因此该程序集本身可以被 .net core 3 WinForm 程序集引用)。
一个新的 .net 核心 WinForm 项目引用了 Microsoft.WindowsDesktop.App.WindowsForms,但是我找不到任何具有该名称的 nuget 包。
我需要做什么来引用 .net core 3 winform?
我想在 Windows 窗体应用程序 (WinForms) 中的类和实体上使用数据注释。我使用 windows DataGridViews 和 Infragistics UltraGrids。我之前已经成功使用该[DisplayName("Name to Display")]属性在 DataGridView/UltraGrid 上设置列标题文本。
这是非常有益的,因为我可能有几个网格显示这个类,而不是配置每个网格来显示适当的标题文本,我可以简单地设置一个数据注释。
我还想使用以下数据注释:
例子
给定以下带注释的数据类:
public class Item
{
//Specifies that the column should not be displayed
[Display(AutoGenerateField = false)]
public int ItemID { get; set; }
//Specifies that the column should be the 1st column in the datagridview
[Display(Order = 1)]
public int Name { get; set; } …Run Code Online (Sandbox Code Playgroud) 我是初学者并创建winform应用程序.其中我必须使用API进行简单的CRUD操作.我的客户与我共享了API,并要求以JSON的形式发送数据.
API:http://blabla.com/blabla/api/login-valida
KEY:"HelloWorld"
价值:{"email":"user@gmail.com","密码":"123456","时间":"2015-09-22 10:15:20"}
响应:Login_id
如何将数据转换为JSON,使用POST方法调用API并获得响应?
编辑 stackoverflow上的某个地方我找到了这个解决方案
public static void POST(string url, string jsonContent)
{
url="blabla.com/api/blala" + url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(baseURL);
request.Method = "POST";
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
Byte[] byteArray = encoding.GetBytes(jsonContent);
request.ContentLength = byteArray.Length;
request.ContentType = @"application/json";
using (Stream dataStream = request.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
}
long length = 0;
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
length = response.ContentLength;
}
}
catch
{
throw;
}
}
//on my login …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我添加了Combobox,如下图所示
我已将组合框属性设置为
cmbDatefilter.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
Run Code Online (Sandbox Code Playgroud)
而现在我的问题是如何将边框样式设置为组合框以使其看起来不错.
我在下面的链接验证
我的问题与以下链接不同.
我有一个StatusStrip停靠在C#表单的底部,它包含一个标签,其中的文本显示正常,除非文本长度较长,然后根本不显示,我必须加宽表格然后全部突然之间出现了.是否可以在下面的表格中显示:
This is a very long tex...
Run Code Online (Sandbox Code Playgroud)
从而使用户知道应用程序是显示的东西,然后他就可以扩大它自己,因为当它是完全不可见,它并不表示任何用户.
我最近开始探索Visual Studio.我试图创建一个幻灯片菜单.更具体地说,当用户按下按钮时,子菜单会弹出到右侧.为了实现这一点,我已经放置了一个Panel调整自己的大小.除了功能,我想添加更多的设计,使Panel显示有点褪色.
我知道Panels在Visual Studio中没有不透明度,但我在想是否有人知道如何实现它的方法技巧.我尝试过Picture Box但是也没有Opacity作为属性.我避免使用Menuvisual studio提供的常规对象,因为我想添加更多设计.有任何想法吗?
在Visual Studio设计,在属性窗口下,您可以选择ForeColor,BackColor使用颜色选择器等.当您想要选择颜色时,颜色选择器会出现"自定义,Web,系统"选项卡.如果选择自定义,则可以向选择器添加新颜色,但只有底部2行可以更改,并且更改不会在控件之间保留.因此,如果您向调色板添加颜色,当您选择另一个控件并想要更改时,例如BackColor您之前添加的颜色不存在.
有没有办法在设计师的颜色选择器控件中创建和导入一组自定义颜色?
注意:这个问题不是询问VS主题,或者是否可以在代码隐藏中将颜色实现为类.我正在寻找一种定制设计师的方法.