小编Tgy*_*gys的帖子

如何让+运算符在相互添加两个点的同时工作?

有没有办法让+操作员为Point对象工作?

举个例子,这个小片段:

this.cm1.Show((MouseEventArgs)e.Location+this.i_rendered.Location);
Run Code Online (Sandbox Code Playgroud)

你看,我试着给彼此增加两点.它只是不起作用(这是预期的).我很乐意让这个工作.

有任何想法吗?

.net c# point operators winforms

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

将引用存储在另一个变量中

我一直在搜索,但我找不到任何方法来存储对某个变量中另一个变量的引用.我正在尝试创建一个类来撤消用户完成的事情;

class UndoAction
{
    public object var;
    public object val;
    public UndoAction(ref object var, object val)
    {
        this.var = var;
        this.val = val;
    }

    public static List<UndoAction> history = new List<UndoAction>();
    public static void AddHistory(ref object var, object val)
    {
        history.Add(new UndoAction(ref var, val));
    }
}
Run Code Online (Sandbox Code Playgroud)

我想你可以看到我在这里想要实现的目标.

我跑的问题;

this.var = var;
Run Code Online (Sandbox Code Playgroud)

不存储引用,而是存储引用的'var'的值.我如何存储引用本身,所以我可以简单地运行;

this.var = val;
Run Code Online (Sandbox Code Playgroud)

在我的情况下,"撤消"一个动作?

.net c# reference

5
推荐指数
1
解决办法
8399
查看次数

如何将自定义控件添加到工具箱?

我已经基于Picturebox创建了一个自定义控件:

public class Timebar : System.Windows.Forms.PictureBox
Run Code Online (Sandbox Code Playgroud)

如果我在Form的初始化方法中手动创建控件/设置所有值等,这可以正常工作.

现在我也在工具箱的顶部找到了这个:http://i.imgur.com/4KUc0.png

当我尝试通过msvc插入它时,我得到一个错误.

Failed to create component 'Timebar'.  The error message follows: 
'System.MissingMethodException: Constructor on type 'SC.Timebar' not found.
Run Code Online (Sandbox Code Playgroud)

这对我的组件Timebar来说并不是一个大问题(因为我将手动添加该组件),但它是我想要制作的自定义Button类(比默认值更奇特).

这个类中有一个构造函数:

public Timebar(Data refr)
{
    this._refr = refr;
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决上述错误?

谢谢,

~sgys

c# toolbox visual-studio-2010 visual-c++

5
推荐指数
1
解决办法
2583
查看次数

如何让一个方法接受两种类型的数据作为参数?

这与我前段时间提出的问题有些相同: 如何让一个方法接受两种类型的数据作为参数?

但目前的情况有很多不同.

拿着这个:

public FormResourceSelector(Dictionary<string, Effect> resourceList, string type)
Run Code Online (Sandbox Code Playgroud)

好吧,没问题.现在我试着运行这个:

FormResourceSelector frs = new FormResourceSelector(AreaEffect.EFFECTS, "Area effect");
FormResourceSelector frs2 = new FormResourceSelector(DistanceEffect.EFFECTS, "Distance effect");
Run Code Online (Sandbox Code Playgroud)

AreaEffect和DistanceEffect(自定义类)都派生自Effect.

public class AreaEffect : Effect
{
    public static Dictionary<string, AreaEffect> EFFECTS = new Dictionary<string, AreaEffect>();
    ...
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我在制作新的FormResourceSelector实例时遇到以下错误:

Argument 1: cannot convert from 'System.Collections.Generic.Dictionary<string,SCreator.AreaEffect>' to 'System.Collections.Generic.Dictionary<string,SCreator.Effect>'  
Run Code Online (Sandbox Code Playgroud)

在:

new FormResourceSelector(AreaEffect.EFFECTS, "Area effect");
Run Code Online (Sandbox Code Playgroud)

我怀疑dictonary是一个骚扰,但我真的不知道如何解决这个问题.

编辑:最简单的是允许在我给出的第一个代码片段中输入Dictionary和Dictionary作为resourceList.

.net c# arguments

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

如何让一个方法接受两种类型的数据作为参数?

我有一个方法,接受一个Hashtable(是的,我知道,它已经过时了......)作为参数:

public static LuaTable HashtableToLuatable(Hashtable t, int depth = 1)
Run Code Online (Sandbox Code Playgroud)

这工作正常.

现在我也想接受一个ArrayList作为第一个参数,所以你可以让't'拥有Hashtable和ArrayList的值.目前我已经两次复制粘贴方法,如下所示:

public static LuaTable ArraylistToLuatable(ArrayList t, int depth = 1)
Run Code Online (Sandbox Code Playgroud)

其余的完全相同.

我认为有一种方法可以合并它.

.net c# arguments hashtable arraylist

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

有没有非常快速的校验和生成算法?

搜索了一下,但是我没有真正找到我想要的东西。

我必须每秒验证大约100个byte [16384](以及许多其他任务..)。即将到来的最大问题是速度。

你们知道在C#.NET中有任何非常好的快速的校验和算法吗?它不必很精确,但是如果单个位发生变化,则校验和也应该(通常)也发生变化。

该字节存储在内存中,因此没有任何IO东西可以减慢它的速度。

谢谢!

.net c# hash performance checksum

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

显示弹出式表单时如何禁用表单?

我有一个“主要”表格(form1)。在那个表单中,我成功地打开了另一个表单 ( form2) - 但是 - 当该表单打开时,您仍然可以控制底层表单 ( form1)。

我不希望用户能够这样做,每当他试图点击它或其他东西时,弹出的表单 ( form2) 应该获得焦点/闪烁,并带有一些默认的 Windows 声音。我刚刚描述了如果弹出窗口是 FileSave/OpenDialog 时它的行为。这些对话框完全按照我希望的方式工作。

我试过设置,form2.Owner = form1;但没有达到预期的效果。

所以我的问题基本上是:我怎样才能获得相同的焦点/等效果。在表单上 - 它在 Save/OpenDialog 上如何?

谢谢,

~ Tgys

c# focus popup winforms

0
推荐指数
1
解决办法
2005
查看次数