小编sps*_*pli的帖子

如何将类列表传递给接口列表?

我有这样的功能:

DoSomething(List<IMyInterface>)
Run Code Online (Sandbox Code Playgroud)

IMyInterface是一个接口,MyClass是一个实现此接口的类MyClass:IMyInterface

我打电话DoSomething(List<MyClass>),它看起来不起作用.我怎样才能将类的列表作为函数的参数传递给类的接口列表?谢谢!

c# interface class list

24
推荐指数
2
解决办法
7519
查看次数

如何在FlowLayoutPanel中禁用水平滚动条?

我有一个FlowLayoutPanel,它有多个控件.我只想在垂直方向滚动.但是当我设置时AutoScroll = true,我得到了垂直和水平滚动条.如何禁用水平滚动条并仅保持垂直滚动条工作?

c# scrollbar flowlayoutpanel winforms

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

AsSelf在autofac中做了什么?

什么是自动面板中的AsSelf()?我是autofac的新手,AsSelf究竟是什么,下面两者有什么区别?

.builder.RegisterType()AsSelf()为()..builder.RegisterType()为();

谢谢!

c# dependency-injection inversion-of-control autofac

18
推荐指数
1
解决办法
5335
查看次数

在WPF中如何添加菜单项事件?

在我的WPF应用程序中,我添加一个菜单,然后在其下添加几个菜单项.例如,我的一个菜单项是"Main Item",然后我在"Main Item"下添加subItem1,subItem2和subItem3.我想点击subItem1并做一些事情(例如MessageBox.show一条消息).为什么我找不到这个subItem1的事件?如何为subItem1添加click事件?我在"Main Item"的集合属性下找到subItem1的属性,但只能看到属性,看不到事件列表.如何为subItem1添加click事件?谢谢!

wpf events menu click

12
推荐指数
1
解决办法
3万
查看次数

为什么在此代码中使用Action?

嗨,我看到以下代码:

void UpdateMessage (string message)
{
    Action action = () => txtMessage.Text = message;
    this.Invoke (action);
}
Run Code Online (Sandbox Code Playgroud)

为什么使用Action然后在这里调用动作?为什么不只是txtMessage.Text = message用来替换函数体中的代码?


更新

在评论中提供的更完整版本的代码,下面再现了语法高亮,缩进等.

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
        InitializeComponent(); 
        new Thread(Work).Start(); 
    } 

    void Work() 
    { 
        Thread.Sleep(5000); 
        UpdateMessage("My Garden"); 
    } 

    void UpdateMessage(string message) { 
        Action action = () => textBox1.Text = message; 
        this.Invoke(action); 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

c# multithreading action invoke

12
推荐指数
2
解决办法
338
查看次数

如何在字典中插入第一个元素?

我有一个字典结构,里面有多个键值对.

myDict.Add(key1, value1);
myDict.Add(key2, value2);
myDict.Add(key3, value3);
Run Code Online (Sandbox Code Playgroud)

我的字典用作某些控件的数据源.在控件的下拉列表中,我看到项目是这样的:

key1
key2
key3
Run Code Online (Sandbox Code Playgroud)

订单看起来与我的字典相同.我知道Dictionary不像arrayList - 你可以得到索引左右.我不能使用sortedDictionary.现在我需要在我的程序的某个点为这个字典添加一个键值对,我希望它与我这样做有同样的效果:

myDict.Add(newKey, newValue);
myDict.Add(key1, value1);
myDict.Add(key2, value2);
myDict.Add(key3, value3);
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我知道newKey将作为第一个元素显示在我的控件中.

我有一个想法是创建一个tempDict,将myDict中的每一对放入tempDict,然后清除myDict,然后像这样添加对:

myDict.Add(newKey, newValue);
myDict.Add(key1, value1);
myDict.Add(key2, value2);
myDict.Add(key3, value3);
Run Code Online (Sandbox Code Playgroud)

还有比这更好的方法吗?

谢谢!

.net c# dictionary

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

为什么添加SuspendLayout和ResumeLayout会降低性能?

我需要向父控件添加很多控件.

但我发现,如果我想补充ParentControl.SuspendLayoutParentControl.ResumeLayout之前和之后我添加这些控件到父,我用秒表来测量刻度:如果我删除代码ParentControl.SuspendLayoutParentControl.ResumeLayout,它会更快.为什么会这样?

所以SuspendLayout并且ResumeLayout不应该减少添加子控件的时间,对吗?那么,有什么好处使用SuspendLayoutResumeLayout或者换句话说,如果我不使用SuspendLayout,并ResumeLayout而是直接添加子控件的父母,有什么不好?

c# layout controls suspend winforms

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

如何在用户控件中的两个控件之间绘制直线?

我有一个名为groupControl的usercontrol:它有两个flowlayoutpanel - 源面板和目标面板.它还有一个按钮.

我有另一个名为item的usercontrol.我将在源面板和目标面板中的M项控件中动态放置N项控件.

我希望每个项目控件和groupControl上的按钮之间有直线.

最后我有一个测试表单MainForm,它还包含一个flowlayoutpanel.我将动态地在MainForm上放置X groupcontrols.

我如何在每个usercontrol项和同一groupControl上的按钮之间绘制直线?

c# user-controls line draw winforms

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

如何将我的协议添加到 Windows 10 的默认程序中?

嗨,我有一个新协议 URL:myTest,如何将它添加到 Windows 10 中,以便我可以看到它在默认程序中列出?我要在注册表中添加它吗?我如何/在哪里可以做到这一点?

我想将程序与此协议相关联。

windows registry protocols windows-10-universal

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

错误:未声明的标识符:'OutputDebugString'

我在我的Delphi代码中使用OutputDebugString,但是我收到错误:

错误:未声明的标识符:'OutputDebugString'

这个OutputDebugString是哪个包?

delphi outputdebugstring undeclared-identifier

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