使用VSTO或某些相关技术,是否可以以编程方式在Excel工作表的单元格中嵌入按钮,并将其配置为在单击时调用C#函数?
怎么样?
谢谢.
我正在编写我的第一个真正的PHP网站,我想知道如何使我的代码对我自己更具可读性.我正在使用的参考书是PHP和MySQL Web Development 4th ed.
上述书提供了三种分离逻辑和内容的方法:
我还没有选择任何这些,因为围绕这些概念缠绕我的大脑需要一些时间.但是,我的代码已成为前两个的混合体,因为我只是在这里复制粘贴并随时修改.
在演示方面,我的所有页面都有这些常见元素:标题,顶部导航,侧边栏导航,内容,右侧边栏和页脚.
本书中基于函数的示例表明我可以使用这些显示函数来处理所有演示示例.所以,我的页面代码将是这样的:
display_header();
display_navigation();
display_content();
display_footer();
Run Code Online (Sandbox Code Playgroud)
但是,我不喜欢这个,因为本书中的示例将这些打印语句与HTML和PHP混合在一起,如下所示:
echo "<tr bgcolor=\"".$color."\"><td><a href=\"".$url."\">" ...
Run Code Online (Sandbox Code Playgroud)
我宁愿在中间使用带有PHP的HTML,而不是相反.
我正在考虑制作我的页面,以便在我的页面开头,我将从数据库中获取所有数据并将其放入数组中.我还将获取变量的数据.如果这些进程中有任何错误,我会将它们放入错误字符串中.
然后,在HTML代码中,我将使用foreach循环遍历这些数组并显示内容.在某些情况下,会显示一些变量.如果存在设置的错误变量,我将在适当的位置显示该变量.
(作为旁注:我不明白的是,在大多数示例代码中,如果某些数据库查询或whatnot给出错误,总会有:
else echo 'Error';
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为当示例代码出错时,有时甚至在HTML开始之前就会回显......)
对于使用过ASP.NET的人来说,我已经习惯了代码隐藏文件和lblError,我正在尝试做类似的事情.
我还没弄明白的是我怎么能做到"先做逻辑,然后再进行演示"这样的事情,这样我就不必复制所有页面中的导航逻辑和导航演示.
我应该做一些包含文件还是我可以在这里使用函数但有点不同?有没有什么好文章可以更彻底地解释这些分离表达和逻辑的"风格".这本书我只有一个关于这个东西的段落.
我在想的是我在谈论一些关于PHP编程的概念或方法,但我还不知道它们的用语.
我知道这不是一个直截了当的问题,我只是需要一些帮助来组织我的想法.
我们目前正在开发一种将被各种不同设备使用的API.我们想要使用OAuth2规范,因为它定义了原始OAuth规范中没有的几个流程.我的问题是,哪种流程最适合iPhone或iPad等移动设备?TweetDeck这样的应用程序使用什么流程?
看看网络似乎像TweetDeck这样的客户使用"用户名和密码凭据流"(无浏览器令牌交换).任何人都可以提供有关此主题的更多信息吗?
从这里开始,这是一个问题的延续.问题是有一条规则从单个输入生成多个输出,并且命令很耗时,所以我们宁愿避免重新计算.现在还有一个额外的转折,我们希望保持文件不被删除为中间文件,规则涉及通配符以允许参数.
建议的解决方案是我们设置以下规则:
file-a.out: program file.in
./program file.in file-a.out file-b.out file-c.out
file-b.out: file-a.out
@
file-c.out: file-b.out
@
Run Code Online (Sandbox Code Playgroud)
然后,调用make file-c.out创建两者,我们避免make与-jswitch 并行运行的问题.到目前为止都很好.
问题如下.因为上述解决方案在DAG中建立了一个链,所以make考虑它不同; 文件file-a.out和file-b.out被视为中间文件,它们在默认情况下得到尽快删除不必要的file-c.out准备.
这里提到了一种避免这种情况的方法,它包括添加file-a.out和file-b.out作为目标的依赖关系.SECONDARY,这使它们不被删除.不幸的是,这并不能解决我的问题,因为我的规则使用了通配符模式; 具体来说,我的规则看起来更像是这样:
file-a-%.out: program file.in
./program $* file.in file-a-$*.out file-b-$*.out file-c-$*.out
file-b-%.out: file-a-%.out
@
file-c-%.out: file-b-%.out
@
Run Code Online (Sandbox Code Playgroud)
这样就可以传递一个包含在文件名中的参数,例如通过运行
make file-c-12.out
Run Code Online (Sandbox Code Playgroud)
make文档建议的解决方案是将这些作为隐式规则添加到依赖项列表中.PRECIOUS,从而防止删除这些文件.
有效的解决方案.PRECIOUS,但它也可以防止在规则失败和文件不完整时删除这些文件.有没有其他方法可以使这项工作?
解决这个问题的方法是定义一个.SECONDARY没有先决条件的目标,即:
.SECONDARY:
Run Code Online (Sandbox Code Playgroud)
通知make所有文件都应被视为辅助文件,因此不会被删除,除非make被中断或规则失败.不幸的是,这不允许选择带有通配符的规则子集以这种方式工作,所以我认为这只是一个黑客(即使它很有用).
如果我的所有方法都需要公开一个集合,那么我需要使用Linq扩展.ToList(),几乎我需要在所有代码中使用列表或用户集合.
如果是这种情况,.ToList()忽略规则吧?或者是否有一种技术,如复制列表,以修复违规并仍然返回列表?
以下是这个问题的背景:我有代码可以出售以获取利润,但我希望将其提供给个人和非营利组织,只要他们的代码仍然免费.
当一个库在GPL v2下发布时,公司可以在内部免费使用它吗?如果他们开发基于它的软件,他们是否必须在GPL下发布它,即使他们不分发它?他们是否可以通过使用(不分发)内部开发的软件来赚钱,这些软件链接到GPL的图书馆,而对作者没有任何补偿?
我正在寻找一个只允许非商业用途的软件许可证(复制,修改,链接); 由此产生的衍生程序也必须是免费的非商业用途.是否有任何软件许可证用于非商业用途,并阻止任何商业用途(包括使用该软件以赚钱)?看起来Creative Commons许可证足够灵活,可以做到接近这一点,但我反对将它们用于软件.你怎么看?
或者也许可以简单地写下面的内容?
"这项工作是在双重许可下发布的:
这是否有效地使该计划免费用于非营利性用途(复制,修改,使用......),同时保持商业用途的大门?
编辑:PS:在阅读完所有答案并在网上查找信息后,我认为这个问题的相关概念是双重许可.互联网上有大量关于它的信息,特别是关于GPL如何适合(或不适用)双重许可.
我试图在WPF RichTextBox中绕过TextPointer类.
我希望能够跟踪它们,以便我可以将信息与文本中的区域相关联.
我目前正在使用一个非常简单的例子来试图弄清楚发生了什么.在PreviewKeyDown事件中,我存储插入符号位置,然后在PreviewKeyUp事件中,我根据插入符号位置之前和之后创建TextRange.这是一个代码示例,说明了我要做的事情:
// The caret position before typing
private TextPointer caretBefore = null;
private void rtbTest_PreviewKeyDown(object sender, KeyEventArgs e)
{
// Store caret position
caretBefore = rtbTest.CaretPosition;
}
private void rtbTest_PreviewKeyUp(object sender, KeyEventArgs e)
{
// Get text between before and after caret positions
TextRange tr = new TextRange(caretBefore, rtbTest.CaretPosition);
MessageBox.Show(tr.Text);
}
Run Code Online (Sandbox Code Playgroud)
问题是我得到的文字是空白的.例如,如果我输入字符'a',那么我希望在TextRange中找到文本"a".
有谁知道出了什么问题?这可能是非常简单的事情,但我花了一个下午无处可去.
我试图接受新的WPF技术,但发现特别是RichTextBox非常复杂,甚至使得这样的简单事情变得困难.如果有人有任何链接可以很好地解释TextPointer,如果你能让我知道,我将不胜感激.
我有一个以优先级RealTime运行的C#应用程序.在我过去2天做了一些忙乱的变化之前,一切都很好.现在它在几个小时内耗尽内存.
我试图找出是否是我创建的内存泄漏是因为我消耗了比以前更多的对象,GC根本无法收集它们,因为它以相同的优先级运行.
我的问题是 - 当GC尝试在具有RealTime优先级的应用程序中收集对象时,会发生什么情况(还有至少一个线程以最高线程优先级运行)?
(PS by realtime priority我的意思是Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime)
对不起忘了告诉.GC处于服务器模式
我有两个型号:Item和Tag.两者都有name属性.我想找到标有多个标签的商品.
class Item < ActiveRecord::Base
has_many :tags
validates_presence_of :name
end
class Tag < ActiveRecord::Base
belongs_to :item
validates_presence_of :name
end
Run Code Online (Sandbox Code Playgroud)
给定一个标签ID列表,我可以很容易地获得用一个标签或另一个标签标记的项目列表:
# Find the items tagged with one or more of the tags on tag_ids
Item.all(:conditions => ['tags.id in (?)', tag_ids], :joins => :tags)
Run Code Online (Sandbox Code Playgroud)
如果tag_ids是{1,4},那么我将所有图片标记为1或4或两者.
我现在想知道如何获得用-1 和 4 标记的图片.
我甚至无法想象这里需要的SQL.