我的问题是我创建了一个"扩展"的RichTextBox控件,它使用本机API添加标准控件中缺少的许多RichEdit功能(即:修改选择的单个字体属性,而不更改其他字体属性,自动换行到打印机[如写字板]等).作为控件的一部分,我公开了一个PrintDocument,用于打印RichTextBox的格式化内容.当wordwrap设置为"Wrap To Printer"时,我将EM_SETTARGETDEVICE消息发送到RichTextBox,并使其换行到适当的长度.
当某些内容(用户/代码)更改了我的控件的WordWrap属性时,这一切都正常.但是,如果之后修改了PrintDocument,我无法知道它.因此,即使用户可能更改了PrintDocument上的边距,我的RichTextBoxEx也不会为更新的宽度重新发送EM_SETTARGETDEVICE,直到WordWrap属性发生更改.
我看到了一些可以克服这一点的选择,但我不是他们中的任何一个的忠实粉丝.这就是我所拥有的:
添加一个UpdatePrintDocument()方法或类似的方法,需要在控件外部的东西之后调用(即:父窗体上的PageSetupDialog)更新PrintDocument中的设置.缺点:我将分发控件,所以我想让它尽可能友好.虽然我可能记得在我成功更新PrintDocument设置时随时调用该方法,但其他人可能不会.亲:实施起来很简单.
创建一个新的PrintDocumentEx类,它基于PrintDocument并实现所需的"Changed"事件.缺点:可能还不够,可能需要创建PrintSettingsEx,PageSettingsEx等.Pro:实施一次,没有人再担心它.
我真的认为#2是我必须选择的选项但是对于下一个实例它不是非常可重用我需要一些类似的功能.我想我正在寻找的是一种将"通用PropertyChanged事件"附加到任何现有类属性的方法,因为这将适用于未来的情况.急于看到你们对我有什么:-)
如果在负载均衡器和weblogic集群之间配置了两个Web服务器,那么两个Apache服务器是否会保持会话粘性?
例如,负载均衡器将第一个请求转发给第一个apache,然后将第一个apache转发给第一个WL托管实例.即使来自同一用户的第二个req由负载均衡器转发到第二个apache,第二个apache也能够将它转发到服务第一个请求的第一个WLManaged实例,而不是第二个不了解的第二个WLManaged实例.会话信息.
理想情况下,weblogic apache插件的行为应该是什么?问题是我不想在wl服务器集群上启用会话复制.
敏捷有哪些神话或误解?
有一些与敏捷有关的误解可能会导致普通新人陷入困境.敏捷世界有什么误解,你如何证明这是一种误解呢?
更新:敏捷神话总结
阅读以下答案,了解有关上述神话和更多神话的更多信息.
看起来像一个初学者的问题,但我似乎无法弄清楚...
我有一个全新的Windows 7 x64/Apache 2.2/PHP 5.2/MySQL 5 x64安装.
实际上我尝试了IIS和Apache.
但是这个PHP代码不起作用:
<?
$hostname = "localhost";
$username = "xxx";
$password = "xxx";
$db = mysql_connect($hostname,$username,$password) or die("die");
?>
Run Code Online (Sandbox Code Playgroud)
echo("hello world")确实有效).Call to undefined function mysql_connect().没有错误消息.它只是没有返回任何东西.600秒后,它超时:
Fatal error: Maximum execution time of 60 seconds exceeded in
C:\Ampache\try.php on line 6
Run Code Online (Sandbox Code Playgroud)任何线索?
我正在尝试创建一个Outlook 2010插件,为功能区添加一个新选项卡.我发现如何通过将OfficeId设置为"TabMail"或内置的东西将我的组添加到现有选项卡,但我不想修改现有选项卡.
我现在已经将OfficeId设置为我自己的东西("TabMyAddin"),但它没有显示在Outlook中.我想知道我是否需要以某种方式告诉Outlook添加它并显示它,或者我将如何继续?
如果重要,RibbonType已更改为Microsoft.Outlook.Explorer.
目前,我正在定期DbTable Auth Adapter:
protected function _getAuthAdapter($formData)
{
$dbAdapter = Zend_Db_Table::getDefaultAdapter();
$authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTableName('users')
->setIdentityColumn('username')
->setCredentialColumn('password');
$authAdapter->setIdentity($formData['username']);
$authAdapter->setCredential(md5($formData['password']));
return $authAdapter;
}
Run Code Online (Sandbox Code Playgroud)
但我想检查数据库中的其他列(IsActive例如).我不知道是否可以使用适配器完成此操作.如何才能做到这一点?
我有一些用c#编写的执行并发代码的东西,大量使用任务并行库(Task and Future continuation chains).
我现在将其移植到F#,并试图找出使用F#Async工作流与TPL中的构造的优缺点.我倾向于TPL,但我认为无论哪种方式都可以.
有没有人有关于在F#中编写并发程序的提示和智慧?
我有UIView一个UIController观点.我的标准是320x460视图.在applicationDidFinishLaunching我这样做:
[window addSubview:[controller view]];
Run Code Online (Sandbox Code Playgroud)
奇怪的是,它UIView位于状态栏下(就像缺少出口一样).但是,如果我将iPhone旋转到一侧然后再回来,它会显示正常.
这是一种预期的行为(我打赌我可以通过设置偏移来修复它)或者我做错了吗?
我想知道一个类的成员函数是否应该是const,如果它调用其他修改其数据成员的函数.一个很好的例子是一个公共成员函数,它使用私有成员函数来完成工作.
void Foo::Show() const { // Doesn't directly modify data members in this function
ShowPig(); // One or all of these functions modify data members
ShowCow();
ShowBar();
}
Run Code Online (Sandbox Code Playgroud)
也许不是最好的例子,但你明白了.
我有一个用户控件,我需要以编程方式添加到指定行和列索引的Silverlight Grid.这些要求是我需要插入任意索引,这样纯数据绑定可能并不理想.
我不希望在后面的代码中从头开始创建网格.可以这样做吗?有例子吗?