好吧哈菲兹然后尝试这个代码。
FB.ui({ method: 'stream.publish', message:'hello', attachment: { name: title, caption: "I'm running!", media: [{ type: 'image', href: 'http://www.yoursite.com/', src: 'http://www.yoursite.com/images/working.jpeg' }] }, action_links: [{ text: 'Get your percentage', href: 'http://www.yoursite/' }], user_message_prompt: 'Tell your friends about Get your percentage:' });
对窗体调用 Refresh 只是强制其重新绘制。没有任何理由认为它会以不同的方式重新绘制。您必须以该形式重写 OnPaint() 方法。显然,您没有使用 OnPaint 来绘制图像,而是使用 PictureBox。将该控件的 Visible 属性设置为 false 将使图像消失,无需其他帮助。
您必须使用 c++ CLI,否则无法调用 DllImport。
如果是这种情况,您只需引用 c# dll 即可。
在 c++ CLI 中,您可以执行以下操作:
using namespace Your::Namespace::Here;
#using <YourDll.dll>
YourManagedClass^ pInstance = gcnew YourManagedClass();
其中“YourManagedClass”在 c# 项目中定义,输出程序集为“YourDll.dll”。
** 编辑 **
添加了您的示例。
这就是您的示例在 CLI 中的样子(为了清楚起见,我假设 G
etResult 不是静态函数,否则您只需调用Calculate::GetResult(...)
private: System::Void CalculateResult(int arg1, int arg2)
{
int rez=0;
//Call C++ function from dll
Calculate^ calculate= gcnew Calculate();
rez=calculate->GetResult(arg1,arg2);
}
您无法通过预处理器实现这一点。这是因为您可以在 VS 之外运行调试可执行文件(尝试一下,在调试模式下双击 VS 生成的 EXE)。
无论如何,有一个运行时(不是基于预处理器的)属性可能会有所帮助:
if (System.ComponentModel.LicenseManager.UsageMode ==
System.ComponentModel.LicenseUsageMode.Designtime)
这些网页将提供帮助,并具有在运行时检查设计模式的其他方法:
http://msdn.microsoft.com/en-us/library/c58hb4bw(vs.71).aspx
http://weblogs.asp.net/fmarguerie/archive/2005/03/ 23/395658.aspx
检查下面的示例是否适合您。关键是为您的小部件设置上下文菜单策略 CustomContextMenu 并连接到小部件的 customContextMenuRequested 信号:
import sys
from PyQt4 import QtGui, QtCore
class MainForm(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainForm, self).__init__(parent)
# create button
self.button = QtGui.QPushButton("test button", self)
self.button.resize(100, 30)
# set button context menu policy
self.button.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.button.customContextMenuRequested.connect(self.on_context_menu)
# create context menu
self.popMenu = QtGui.QMenu(self)
self.popMenu.addAction(QtGui.QAction('test0', self))
self.popMenu.addAction(QtGui.QAction('test1', self))
self.popMenu.addSeparator()
self.popMenu.addAction(QtGui.QAction('test2', self))
def on_context_menu(self, point):
# show context menu
self.popMenu.exec_(self.button.mapToGlobal(point))
def main():
app = QtGui.QApplication(sys.argv)
form = MainForm()
form.show()
app.exec_()
if __name__ == '__main__':
main()
国家/地区很可能是一个静态集合,因此您只需使用包含国家/地区(键国家/地区名称、值国家/地区代码)的静态 Map 创建一个应用程序范围的 bean。
然后只需将您的
绑定到需要国家/地区下拉列表的每个视图中即可。
(顺便说一句,此解决方案归功于 BalusC ;))
在控制器构造函数内执行重定向不是一个好习惯,因为上下文可能未初始化。标准做法是编写自定义操作属性并覆盖 OnActionExecuting 方法并在里面执行重定向。示例:
public class RedirectingActionAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
if (someConditionIsMet)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new
{
controller = "someOther",
action = "someAction"
}));
}
}
}
然后用此属性装饰您想要重定向的控制器。要非常小心,不要用此属性装饰您要重定向到的控制器,否则您将陷入无限循环。
所以你可以:
[RedirectingAction]
public class HomeController : Controller
{
public ActionResult Index()
{
// This action is never going to execute if the
// redirecting condition is met
return View();
}
}
public class SomeOtherController : Controller
{
public ActionResult SomeAction()
{
return View();
}
}
int getX(){
y++;
return x;
}
如果您要在每个断点之后对 getX() 进行监视,调试器将调用 getX() 并且 y 将增加 1。并且您的程序将具有与运行模式不同的行为。
如果我错了,请纠正我,但我相信前面的示例与 James Newton 的 Json.NET 库的最新版本略有不同步。
var o = JObject.Parse(stringFullOfJson);
var page = (int)o["page"];
var totalPages = (int)o["total_pages"];
我已经尝试了几次谷歌搜索,以找到关于此问题的明确答案,但之前没有找到。刚才我发现一个线程实际上引用了有关该问题的微软知识库文章。文章 KB948869 描述了该问题。
知识库文章建议创建您自己的组合框并重写 ProcessDialogKey 方法。
using System.Windows.Forms;
public class MyComboBox : ComboBox
{
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Tab)
this.DroppedDown = false;
return base.ProcessDialogKey(keyData);
}
}
我已经尝试过,但不幸的是,它似乎没有任何效果。这有点奇怪。我希望知识库文章中描述的解决方法是准确的。
不过,我找到了另一种解决方法,那就是使用 DropDownClosed 事件。
private void comboBox1_DropDownClosed(object sender, EventArgs e)
{
label1.Text = "DroDownClosed Selected index: " + comboBox1.SelectedIndex;
}
这确实似乎有效,但仅在使用 DropDownStyle.DropDown 时有效。当您将 DropDownStyle 设置为 DropDownList 时,键入字符不会触发 DropDownClosed (因为在这种情况下没有实际的下拉列表)。仅当您实际打开下拉列表并选择一个值时,才会触发 DropDownClosed 事件。
因此,这两种选择都不是一个好的答案。
更新
我什至尝试覆盖 MyComboBox 中的属性 SelectedIndex,让它调用 OnSelectedIndexChanged(EventArgs.Empty)
。输入一个字符并按 Alt+Down 后,setter 会被执行,但它会将值设置为 -1,这已经是了。按 Tab 键后,设置器不会再次执行,尽管 SelectedIndex 值确实发生了变化。看起来 ComboBox 绕过了设置,直接更改了 SelectedIndex 的支持字段。我相信类似的事情也可能发生在真正的 ComboBox 中。
就像您自己所说:您可能有另一个可以是 IRelated 的类。如何将此类的实例添加到 List
中?
你必须写:
List<IRelated> listofrelateditems = new List<IRelated>();
没有行限制,但有大小限制 在 InnoDB 数据库上:
您始终可以通过将行存储在水平分区表中同一个表的多个分区位于多个文件中。
There isn't a row limit, but a size limit on an InnoDB database:
You could always horizontally partition your tables by storing rows in multiple partitions of the same table, in multiple files.
MySQL表的最大行数是多少