同样这篇文章还是跟上一个教程一样是Scøtt在Liveside发布的,关于制作Windows Live Writer插件的系列教程。你可以到这里查看源教程,下面是我个人的翻译,希望能够对大家有用。
许多Writer的插件都有一个窗体当你在Writer里点击Insert链接的时候,这个窗体将会完成插件的功能并且返回将要显示在Blog文章中的代码或者文字。在这个对话框中,你可以做任何你想插件去做的事,但是在这个事例中我将使它实现简单的功能来显示基础的内容,其余的插件代码让你们自行去编码以达到你们的需求。
打开你的项目(我将继续先前文章中的“MyNewPlugin”的例子),并且新建一个Windows窗体(在这个例子中我将为这个窗体取名没“frmMyFrom”)。这个例子中,我的窗体只有一个文本框、一个插入按钮和一个取消按钮,并且他将实现用户输入一些文字然后当点击"insert"时将其显示在Blog文章中。在你的窗体中,添加一个文本框和两个按钮(我还添加了一个标签去描述这个文本框是干什么的),你所做的应该是像这样:
这个窗体的其它属性都可以根据你的要求改变。除了这个我取名为“txbxText”的文本框,我保留当这个窗体创建时所有原始的命名。
现在我们需要告诉按钮我们将要做些什么。我们从取消按钮开始;在这个窗体的属性中,有一个叫“CancelButton”的属性,设置取消按钮(例子中的"Button2")。对于"Insert"按钮,双击它,Visual Studio将会为你建立一个方法,我们可以添加我们的代码到这个方法里。在我们做这个之前,在这个类的最前端(初始的方法之前),我们需要声明一个字符串变量。所以输入:
string text;
在插件中,所有我们需要这个"Insert"按钮所做的是指定"DialogResult"值,设置"text"变量并且关闭窗体。所以我们需要输入以下代码:
DialogResult = DialogResult.OK;
text = txbxText.Text;
this.Close();
注意我们怎样这个字符串变量"text"等于文本框的文本的。最后我们需要为这个插件建立一个字符串方法来返回字符串变量"text",这个将会从插件主类中调用。
public string getText
{
get { return text; }
}
现在,在我们覆写"CreateContent"方法的主类中,我们需要添加一段新的部分,在这之前我们只有
newContent = "Some text";
我们现在需要告诉插件我们想使用我们的新窗体:
using (frmMyForm form = new frmMyForm())
{
你应该还记得在上一次文章中我提及关于"DialogResult"部分(我只简单的涉及了一些),这就是它的作用了。一旦我们告诉插件使用窗体,我们需要新建一个新的"DialogResult"去打开我们最近调用的窗体,所以我们在下一行插入:
DialogResult result = form.ShowDialog();
在窗体中当我们点击"Insert"按钮,我们设置"DialogResult"等于DialogResult.OK,这表示一个OK被传入一个对话框中,所以我们可以使用一个"if"语句检查它。在"if"语句之中,我们将设置"newContent"值等于窗体中的"getText"字符串:
if (result == DialogResult.OK)
{
newContent = "You entered:" + form.getText + ".";
}
我们现在需要关闭所有打开的区域(使用一个})。希望你能看到依次出现的这些,"form.getText"是我们设置返回窗体中"text"字符串的公共的字符串,"text"字符串获得文本框的最后将插入到Blog文章中的值。
如果你对这篇文章有疑问的话可以留言,同样的,对于前两篇文章你碰到了棘手的问题,也可以。
你可以到这里下载源代码。


1 Comments so far
1. 2007-01-19 我的美味書籤 | Robbin.cc Said:
January 20th, 2007 at 00:34
[...] 5 - 为Live Writer插件使用窗体 - GuaGua's Blog (tags: tip WLW) 分享此文 [...]