我有这个想法,在每个按钮的基本自定义页面中注册一个事件.我可以检查它是保存还是编辑,然后进行授权和验证.派生页面仍会处理单击事件以执行在该页面上保存的细节.我不确定哪个事件会先发生.(但它可能是连线的顺序)如果父页面首先运行,我可以通过设置IsAuthorized或IsValidated属性并在每个派生页面的单击处理程序中检查它来获得预期的行为.
无论如何,有没有办法确保基页的事件处理程序首先运行并完成,还是有办法挽救它?
编辑:我是否忽略了一个更简单的设计,不需要为应用程序中的每个编辑/保存/更新按钮添加锅炉板代码?什么是一个事件处理与另一个事件交流的正确方法?例如,基页需要传达成功或失败验证,派生类需要传达保存的成功或失败,以便可以将其记录在审计中.
//Base page-- seems like this will work if events happen in order of wireup.
protected override void OnInit(EventArgs e)
{
foreach (Control possibleButton in Controls)
{
if(possibleButton is Button)
{
Button button = (Button) possibleButton;
button.Command += ButtonCommandPreconditions;
}
}
base.OnInit(e);
foreach (Control possibleButton in Controls)
{
if(possibleButton is Button)
{
Button button = (Button) possibleButton;
button.Command += ButtonCommandPostconditions;
}
}
}
void ButtonCommandPreconditions(object sender, CommandEventArgs e)
{
if(e.CommandName=="Save" || e.CommandName=="Edit")
{
//Stuff that needs to happen …Run Code Online (Sandbox Code Playgroud) 我的目标是分析和学习编译器开发技术的细节.在这里,我想在gcc中添加一个关键字,看看它是如何工作的.
我用C语言编写了一个代码,如下所示:
main()
{
float x[10][10]; int i,j; clrscr();
scanf("%d%d",&i,&j);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&x[i][j]);
......
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个程序时,会出现一个错误终止,错误如"FLOATING POINT CONVERSIONS NOT LINKED".
你介意告诉我我错了什么吗?
我的操作系统:Windows XP编译器:TurboC
我正在寻找有关如何使用WPF(和C#)绘制族谱的教程.
像http://www.myheritage.nl/FP/family-tree.php?s=65040841或Family.Show之类的东西,但对于一个完整的初学者.Family.Show有点太复杂了.我不想实现外部控件,而是想学习如何自己编写它们.
所以我需要知道所有的事情:如何绘制项目,算法用于定位/绘制所有元素等等...但是我找不到任何有关WPF的初学者教程.
我希望有人可以帮助我.
我的兄弟想学习一些编程,以了解他是否喜欢这样做.他16岁,对计算机一般不太了解,对程序设计一无所知.
我正在考虑选择Alice或Python.我认为Think Python是经常推荐的读物,但对于初学者来说,它是不是有点太多(尺寸方面)?这当然不是太复杂,但我对我的兄弟并不那么乐观...... :)他能尝试的其他任何东西都会更小而且非常简单吗?
还有,有没有人有过爱丽丝的经历?我自己不会真的想以这种方式开始编程,但我可以看到为什么视觉方面可能对某些人更具吸引力.我只是不确定它是如何限制的,如果用于学习伪语言的时间不会更好地学习真正的语言.
编辑:谢谢你的回复.我想我们会选择Python.但是,正如我上面提到的,对于一个完整的"新手"来说,"Think Python"有点过于广泛吗?您可以推荐任何其他但更简单的Python编程介绍?
class Device
def initialize(device_id, data_resource)
@id = device_id
@data_resource = data_resource
end
def display_device
mode = @data_resource.get_display_device_mode(@id)
presets = @data_resource.get_display_device_presets(@id)
summary = "display_device: #{mode} ($#{presets})"
return "* #{summary}" if presets == "XTC909"
summary
end
def chip
mode = @data_resource.get_chip_mode(@id)
presets = @data_resource.get_chip_presets(@id)
summary = "chip: #{mode} ($#{presets})"
return "* #{summary}" if presets == "XTC909"
summary
end
def input_device
mode = @data_resource.get_input_device_mode(@id)
presets = @data_resource.get_input_device_presets(@id)
summary = "input_device: #{mode} ($#{presets})"
return "* #{summary}" if presets == "XTC909"
summary
end
end
Run Code Online (Sandbox Code Playgroud)
从上面的代码中可以看出,这些方法中存在相当多的冗余. …
在尝试通过curses(ncurses)从箭头键获取输入时,它不会捕获KEY_UP等.我使用带有true参数的键盘函数但是getch仍然返回一个转义序列.如何筛选getch()返回的值并专门抓取箭头键?
我想在我的社交网站上实现memcached.作为一个社交网络,大多数数据都经常变化.
例如,如果我要将用户的10,000个朋友存储在缓存中,则无论何时添加朋友,都需要更新缓存.这很容易,但是当其他人将它们添加为朋友时,它也需要更新.仅仅在好友列表上进行了大量更新.
还有一些用户博客和公告,这些博客和公告是不间断发布的新用户博客和公告,您只能在朋友列表中看到用户创建的博客和公告,所以我认为这很难缓存.
我可以看到可能缓存一些仅在用户更新其配置文件时更改的配置文件信息,但如果有超过100,000个用户进行了大量缓存,则会为每个用户创建一个缓存记录.这是一个好主意吗?
模板元编程是否比同等的C代码更快?(我说的是运行时性能):)