有没有办法让+操作员为Point对象工作?
举个例子,这个小片段:
this.cm1.Show((MouseEventArgs)e.Location+this.i_rendered.Location);
Run Code Online (Sandbox Code Playgroud)
你看,我试着给彼此增加两点.它只是不起作用(这是预期的).我很乐意让这个工作.
有任何想法吗?
我一直在搜索,但我找不到任何方法来存储对某个变量中另一个变量的引用.我正在尝试创建一个类来撤消用户完成的事情;
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)
在我的情况下,"撤消"一个动作?
我已经基于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
这与我前段时间提出的问题有些相同: 如何让一个方法接受两种类型的数据作为参数?
但目前的情况有很多不同.
拿着这个:
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.
我有一个方法,接受一个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)
其余的完全相同.
我认为有一种方法可以合并它.
搜索了一下,但是我没有真正找到我想要的东西。
我必须每秒验证大约100个byte [16384](以及许多其他任务..)。即将到来的最大问题是速度。
你们知道在C#.NET中有任何非常好的快速的校验和算法吗?它不必很精确,但是如果单个位发生变化,则校验和也应该(通常)也发生变化。
该字节存储在内存中,因此没有任何IO东西可以减慢它的速度。
谢谢!
我有一个“主要”表格(form1)。在那个表单中,我成功地打开了另一个表单 ( form2) - 但是 - 当该表单打开时,您仍然可以控制底层表单 ( form1)。
我不希望用户能够这样做,每当他试图点击它或其他东西时,弹出的表单 ( form2) 应该获得焦点/闪烁,并带有一些默认的 Windows 声音。我刚刚描述了如果弹出窗口是 FileSave/OpenDialog 时它的行为。这些对话框完全按照我希望的方式工作。
我试过设置,form2.Owner = form1;但没有达到预期的效果。
所以我的问题基本上是:我怎样才能获得相同的焦点/等效果。在表单上 - 它在 Save/OpenDialog 上如何?
谢谢,
~ Tgys