The reason for this behavior is that the OnLoad event is too early to set your custom button. At the end of the OnLoad event the tools file of the Editor is loaded and it overwrites the changes that you has made. So when you define your custom button in the pre_render
event, the tools file is already loaded and you can overwrite the settings set by it. In the ASP.NET AJAX version of RadEditor there is an
EnsureToolsFileLoaded method which you can call if you want to be sure that the tools file will not overwrite your settings. Unfortunately this method is not featured in old ASP.NET version of the editor. So if you want to add a custom button, you need to do it after the OnLoad event is finished.
the Telerik team