标签: winforms

使用Windows窗体实现MVC

在哪里可以找到关于如何在Windows窗体中完全实现MVC模式的好例子?

我在各个站点上找到了许多教程和代码示例(例如,代码项目和.NetHeaven),但是许多比MVC更能代表观察者模式.由于我想开发的应用程序是针对学校项目的,我不愿意使用像PureMVCMVC#这样的框架.

.net model-view-controller winforms

102
推荐指数
3
解决办法
5万
查看次数

使无边框形式可移动?

有没有办法使一个没有边框的表单(FormBorderStyle设置为"none")可以在窗体上单击鼠标时移动,就好像有一个边框?

c# border movable winforms

101
推荐指数
8
解决办法
15万
查看次数

如何将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万
查看次数

如何在C#中为WinForms菜单添加分隔符?

在我的掌控之中,我有:

ContextMenu = new ContextMenu();
ContextMenu.MenuItems.Add(new MenuItem("&Add Item", onAddSpeaker));
ContextMenu.MenuItems.Add(new MenuItem("&Edit Item", onEditSpeaker));
ContextMenu.MenuItems.Add(new MenuItem("&Delete Item", onDeleteSpeaker));
ContextMenu.MenuItems.Add( ??? );
ContextMenu.MenuItems.Add(new MenuItem("Cancel"));
Run Code Online (Sandbox Code Playgroud)

我怎么做一个菜单分隔符?

c# contextmenu separator winforms

99
推荐指数
4
解决办法
7万
查看次数

如何让Visual Studio 2008 Windows窗体设计器呈现实现抽象基类的Form?

我在Windows窗体中遇到了继承控件的问题,需要一些建议.

我确实为List中的项目(由面板构成的自制GUI列表)和一些可以添加到列表中的每种数据类型的继承控件使用基类.

它没有问题,但我现在发现,将基本控件变成抽象类是正确的,因为它有方法,需要在所有继承的控件中实现,从内部的代码调用base-control,但不能也不能在基类中实现.

当我将基本控件标记为抽象时,Visual Studio 2008 Designer拒绝加载窗口.

有没有办法让Designer使用基础控件制作抽象?

c# visual-studio-2008 windows-forms-designer winforms

98
推荐指数
5
解决办法
3万
查看次数

在WebBrowser控件中禁用JavaScript错误

我正在开发一个带有WebBrowser控件的Windows应用程序,该控件可导航到sharepoint站点.
我的问题是我收到了JavaScript错误.

如何禁用JavaScript错误?我不想让它们弹出来.

.net c# webbrowser-control winforms

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

在Windows窗体中的文本标签中输入"&"符号?

如何Label在C#(Windows窗体)中输入特殊字符?

如果你试图在标签上写一个"&",你会得到一种下划线.

那么什么是C#相当于"&"?("\&"显然不起作用).

.net c# label special-characters winforms

98
推荐指数
3
解决办法
7万
查看次数

在Linux上开发C#

我想知道是否有有效的开源工具在Linux(Ubuntu)上开发C#应用程序.特别是,我必须开发WinForm应用程序.

我知道Mono项目,但我从未使用它.你能否告诉我在Ubuntu上设置.NET开发环境的最佳工具(IDE,编译器等)是什么?

它是在Linux上开发的可在Windows上运行的软件吗?是否存在不同的行为或不兼容性?

.net c# linux ide winforms

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

带有C#参数的'UserControl'构造函数

叫我疯了,但我喜欢那种喜欢带参数的构造函数(如果需要)的人,而不是没有参数的构造函数,后跟设置属性.我的思考过程:如果需要实际构造对象的属性,它们应该进入构造函数.我有两个好处:

  1. 我知道当构造一个对象(没有错误/异常)时,我的对象是好的.
  2. 它有助于避免忘记设置某个属性.

这种心态开始在形式/用户控制开发方面受到伤害.想象一下UserControl:

public partial class MyUserControl : UserControl
{
  public MyUserControl(int parm1, string parm2)
  {
    // We'll do something with the parms, I promise
    InitializeComponent();
  }
}
Run Code Online (Sandbox Code Playgroud)

在设计时,如果我将其UserControl放在表单上,​​我得到一个Exception:

无法创建组件'MyUserControl'...
System.MissingMethodException - 没有为此对象定义的无参数构造函数.

对我来说,似乎唯一的办法是添加默认构造函数(除非其他人知道某种方式).

public partial class MyUserControl : UserControl
{
  public MyUserControl()
  {
    InitializeComponent();
  }

  public MyUserControl(int parm1, string parm2)
  {
    // We'll do something with the parms, I promise
    InitializeComponent();
  }
}
Run Code Online (Sandbox Code Playgroud)

不包括无参数构造函数的重点是避免使用它.我甚DesignMode至无法使用该属性执行以下操作:

public partial class MyUserControl : UserControl …
Run Code Online (Sandbox Code Playgroud)

c# parameters user-controls constructor winforms

97
推荐指数
4
解决办法
5万
查看次数

使用FileSystemWatcher监视目录

我正在使用Windows窗体应用程序来监视目录并将其中的文件移动到另一个目录.

目前它会将文件复制到另一个目录,但是当添加另一个文件时,它将以没有错误消息结束.有时它会在结束第三个文件之前复制两个文件.

这是因为我使用的是Windows窗体应用程序而不是控制台应用程序吗?有没有办法可以阻止程序结束并继续观看目录?

private void watch()
{
  this.watcher = new FileSystemWatcher();
  watcher.Path = path;
  watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
                         | NotifyFilters.FileName | NotifyFilters.DirectoryName;
  watcher.Filter = "*.*";
  watcher.Changed += OnChanged;
  watcher.EnableRaisingEvents = true;
}

private void OnChanged(object source, FileSystemEventArgs e)
{
  //Copies file to another directory.
}

public void Dispose()
{
  // avoiding resource leak
  watcher.Changed -= OnChanged;
  this.watcher.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

c# io filesystemwatcher copy winforms

95
推荐指数
3
解决办法
18万
查看次数