小编Jim*_*imi的帖子

如何将List绑定到ComboBox?

我想连接一个BindingSource类对象列表,然后将对象值连接到一个ComboBox.
谁能建议怎么做?

public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; }

    public Country()
    {
        Cities = new List<City>();
    }
}
Run Code Online (Sandbox Code Playgroud)

是我的类,我想将其name字段绑定到BindingSource,然后可以与ComboBox关联

c# data-binding combobox winforms

100
推荐指数
3
解决办法
37万
查看次数

如何在 Visual Studio 中打开表单设计器?

我正在尝试在 Visual Studio 中使用 C# 创建 Windows 窗体应用程序。

一般情况下可以双击Form1.cs在解决方案资源管理器中双击该文件,以访问简单的拖放设计器。

不幸的是,它只打开文件的代码。

解决方案浏览器

c# visual-studio

13
推荐指数
3
解决办法
4万
查看次数

DPI意识 - 在一个版本中不知道,在另一个版本中意识到系统

所以我们有这个奇怪的问题.我们的应用程序是一个C#/ WinForms应用程序.在我们的6.0版本中,我们的应用程序不支持DPI.在我们的6.1版本中,它突然变成了DPI意识.
在6.0版本中,如果您在高DPI中运行它,它使用Windows位图缩放,这很好,因为这不会影响屏幕布局.在6.1版本中,由于它因某种原因而成为DPI识别,因此用户界面受到严重破坏.
我们现在无法解决这个问题.我们有数百个屏幕,因此在DPI识别模式下使它们全部正常工作将花费大量时间.

我们已使用SysInternals Process Explorer确认了这一点.在我们的6.0版本中,它显示了Unaware,但在我们的6.1版本中,它最初显示Unaware,但随后更改为System Aware.
后者发生在代码从EXE进入包含所有用户界面代码的程序集DLL中时(我们的EXE基本上是一个非常薄的shell;它实际上只是在我们的表示层程序集上调用一个Controller类.)

我们已确认以下内容:

  • 两个版本都使用VSS 2017在发布模式下构建.
  • 两个版本都针对相同的.NET Framework(4.5)
  • 两个版本都使用相同的DevExpress版本.
  • 两个版本都具有相同的应用程序清单,该清单启用DPI感知设置.
  • 这两个版本都没有任何与DPI相关的Windows API的调用.
  • 使用Sys Internals和一些消息框,我们确定了6.1版本在什么时候发现(进入Presentation程序集的入口点)以及那时加载了什么DLL(我们的,DevExpress,其他依赖项),然后我们构建了一个小的虚拟应用程序,引用相同的DLL,并确认它们已加载.该虚拟应用程序不会成为DPI意识.
  • 我们比较了两个版本之间的主要csproj文件,没有任何有意义的差异.
    • 这两个版本都没有引用WPF的任何内容.

我们不明白为什么我们的6.1版本突然变成了DPI意识.我们无知还有什么可以看,我们需要一个修复程序,将此版本恢复到DPI unaware模式.它正在阻止我们的发布.非常感谢任何指针.我们愿意在这一点上尝试任何事情.

.net c# highdpi winforms dpi-aware

10
推荐指数
1
解决办法
1829
查看次数

Process.Start没有Extension的文件

我们已经知道它是如何System.Diagnostics.Process.Start("C:\filename.png")工作的,但如果文件名不以扩展名结尾怎么办?

如何使用与扩展名相关联的默认程序运行没有扩展名的文件.png名?

就像是:

openFile("C:\filename","PNG")
Run Code Online (Sandbox Code Playgroud)

.net vb.net registry system.diagnostics file

8
推荐指数
1
解决办法
1219
查看次数

如何使winform进度条在C#中垂直移动?

我正在使用WinForms Jukebox.
我想要一个用于音量控制的垂直ProgressBar.

有谁知道这是怎么做到的吗?

c# user-interface winforms progress-bar

6
推荐指数
2
解决办法
2万
查看次数

检查对象类型的哪种方法更好?

方法1:

class Employee 
{
public:
    virtual int calculateSalary() = 0;

};

class PermanentEmployee : public Employee {
    const int salaryPerMonth;
public:
    PermanentEmployee(int sal) : salaryPerMonth(sal){}

    int calculateSalary() {
        return salaryPerMonth;
    }
};

class ContractEmployee : public Employee {
    const int wagesPerHr;
    int totalHour;
public:
    ContractEmployee(int sal) : wagesPerHr(sal), totalHour(0){}

    void setWorkingDuration(int time) {
        totalHour = totalHour + time;
    }
    int calculateSalary() {
        return wagesPerHr * totalHour;
    }
};

class Manager {
    list<Employee *> ls;
public:
    void assignWorkingHour() {
        list<Employee …
Run Code Online (Sandbox Code Playgroud)

c++

6
推荐指数
1
解决办法
199
查看次数

围绕枢轴点重复旋转点

一段时间以来,我一直在我的各种程序中使用以下函数围绕枢轴点旋转一系列点。

\n\n
private Point RotatePoint(Point point, Point pivot, double radians)\n{\n    var cosTheta = Math.Cos(radians);\n    var sinTheta = Math.Sin(radians);\n\n    var x = (cosTheta * (point.X - pivot.X) - sinTheta * (point.Y - pivot.Y) + pivot.X);\n    var y = (sinTheta * (point.X - pivot.X) + cosTheta * (point.Y - pivot.Y) + pivot.Y);\n\n    return new Point((int)x, (int)y);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这一直很有效,直到我尝试反复少量旋转形状。例如,这是我在由 4 个点组成的矩形多边形上调用 45\xc2\xb0 得到的结果:

\n\n
foreach (var point in points)\n    Rotate(point, center, Math.PI / 180f * 45);\n
Run Code Online (Sandbox Code Playgroud)\n\n

在此输入图像描述

\n\n

但这是我通过对 1\xc2\xb0 调用旋转 45 次得到的结果: …

c# graphics drawing rotation winforms

6
推荐指数
1
解决办法
2173
查看次数

如何在 Frames/IFrames 中获取 HtmlElement 值?

我正在使用Winforms WebBrowser控件从下面链接的站点收集视频剪辑的链接。

关联

但是,当我逐个元素滚动时,我找不到<video>标签。

void webBrowser_DocumentCompleted_2(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    try
    {
        HtmlElementCollection pTags = browser.Document.GetElementsByTagName("video");
        int i = 1;
        foreach (HtmlElement link in links)
        {

            if (link.Children[0].GetAttribute("className") == "vjs-poster")
            {
                try
                {

                    i++;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }   // Added by edit
}
Run Code Online (Sandbox Code Playgroud)

使用后不久

HtmlElementCollection pTags = browser.Document.GetElementsByTagName("video");
Run Code Online (Sandbox Code Playgroud)

我已经返回 0

我需要调用任何ajax吗?

.net c# webbrowser-control winforms

6
推荐指数
1
解决办法
799
查看次数

透明重叠圆形进度条(自定义控件)

我在使用自定义圆形进度条控件时遇到了一些问题。我试图在右下角重叠它们两个。它有一个透明的背景,这在 WinForms 中显然是显示背景,但对彼此没有影响。

这是我所看到的:

重叠圆形进度条

我一直在研究 stackoverflow,并找到了一些解决自定义图片框控件出现此问题的人的答案。大多数解决方案,似乎对圆形进度条控件没有影响。我尝试过的一些解决方案是。

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;

            cp.ExStyle |= 0x20;

            return cp;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我还有自定义控件上的代码,用于允许透明背景。显然,正如我所说,这不会影响重叠控件。

SetStyle(ControlStyles.SupportsTransparentBackColor, true);
Run Code Online (Sandbox Code Playgroud)

我看到人们使用的 stackoverflow 上还有一个 TransparentControl 解决方案。我已经创建了控件,但要么不知道如何使用它,要么在我的情况下不起作用。这是该控件的代码。

public class TransparentControl : Panel
{
    public bool drag = false;
    public bool enab = false;
    private int m_opacity = 100;

    private int alpha;
    public TransparentControl()
    {
        SetStyle(ControlStyles.SupportsTransparentBackColor, true);
        SetStyle(ControlStyles.Opaque, true);
        this.BackColor = Color.Transparent;
    }

    public int Opacity
    {
        get
        {
            if (m_opacity > 100)
            {
                m_opacity = …
Run Code Online (Sandbox Code Playgroud)

c# user-controls transparency gdi+ winforms

6
推荐指数
1
解决办法
1152
查看次数

如何展平数组数组?

我有一个由以下元素组成的数组:

var schools = new [] {
    new object[]{ new[]{ "1","2" }, "3","4" },
    new object[]{ new[]{ "5","6" }, "7","8" },
    new object[]{ new[]{ "9","10","11" }, "12","13" }
};
Run Code Online (Sandbox Code Playgroud)

我尝试扁平化的真正对象是将数据从 CSV 导入数组数组,然后将其加入字段值:

    var q =
        from c in list
        join p in vocatives on c.Line[name1].ToUpper() equals p.first_name.ToUpper() into ps
        from p in ps.DefaultIfEmpty()
        select new object[] { c.Line,  p == null ? "(No vocative)" : p.vocative, p == null ? "(No sex)" : p.sex }; 
Run Code Online (Sandbox Code Playgroud)

我想展平该字符串数组以获得:

string[] {
    new string[]{ …
Run Code Online (Sandbox Code Playgroud)

c# linq arrays

6
推荐指数
1
解决办法
700
查看次数