首页 新闻 会员 周边

设置弹出字体窗口fontDialog1中,为什么有了这段代码if (fontDialog1.ShowDialog() == DialogResult.OK)就

0
悬赏园豆:30 [已解决问题] 解决于 2012-05-03 12:46

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyNotepad
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void toolStripMenuItem3_Click(object sender, EventArgs e)
{
fontDialog1.Font = richTextBox1.Font;
//没有在这里调用fontDialog1.ShowDialog()方法,

//怎么点击事件toolStripMenuItem3_Click会弹出fontDialog1窗体
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
richTextBox1.Font = fontDialog1.Font;
}
}
 
}
}
问题1:没有在这里调用fontDialog1.ShowDialog()方法,怎么点击该事件toolStripMenuItem3_Click会弹出字体窗体的呢?

问题2:而且我尝试过弹出fontDialog1窗体与

if (fontDialog1.ShowDialog() == DialogResult.OK)代码有关,但是我就不明白,我们的窗体fontDialog1都没生成来如何判断fontDialog1.ShowDialog() 它是true还是false,总之我想问的是我们如何判断语句 

(fontDialog1.ShowDialog() == DialogResult.OK)是true还是false

问题3:请问这段代码什么意思啊DialogResult.OK

程序的界面如下

黑夜猫头鹰的主页 黑夜猫头鹰 | 初学一级 | 园豆:3
提问于:2012-05-02 13:52
< >
分享
最佳答案
0

if (fontDialog1.ShowDialog() == DialogResult.OK)這 就是調用,並且帶返回數值的。

上面的代碼,是以模式窗體顯示fontDialog1,並且停止執行。

直到你關閉fontDialog1

關閉后判斷 DialogResult.OK是否相等。

就是這個代碼,包括2部份,第一是 顯示fontDialog1,第二是 關閉后執行的代碼。

fontDialog1.ShowDialog()你可以查一下,返回類型 就是DialogResult,上面的代碼表示,是否點擊ok。如果是,就執行條件里的語句。

收获园豆:12
無限遐想 | 老鸟四级 |园豆:3740 | 2012-05-02 14:29

不好意思,我比较笨:我不是很明白你的意思

if (fontDialog1.ShowDialog() == DialogResult.OK)這 就是調用,並且帶返回數值的。】这不是一个判断语句吗,他的结果不是只有true和false吗?

怎么成了方法调用函数了?

而且fontDialog1没有调用 ShowDialog() 方法,那么判断语句中的fontDialog1.ShowDialog() 的值应该是false,而DialogResult.OK是true啊(当我点击DialogResult.OK对应控件就为true),那总得来说一个是true而一个是false那么判断条件

if (fontDialog1.ShowDialog() == DialogResult.OK)是false啊,则方法中的赋值语句richTextBox1.Font = fontDialog1.Font;永远不能执行才对??

黑夜猫头鹰 | 园豆:3 (初学一级) | 2012-05-02 23:20

@黑夜猫头鹰: fontDialog1.ShowDialog()就是調用,並且 返回數值。然後 判斷返回數值是否是ialogResult.OK。fontDialog1.ShowDialog()的返回數值,就是你是否點擊了ok。或則其他的。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-05-03 09:03

@無限遐想: 谢谢了,我明白了,

是我对if语句,理解不透,我以前学习的是不执行if (fontDialog1.ShowDialog() == DialogResult.OK)时要执行其中的表达式,以前我以为都是直接用的,例如

static void Main(string[] args)
{
int a = 3;
if ( a == 8)
{
int d;
d = a + 3;
Console.WriteLine(d);
}

不知道原来是要执行其中的判断条件的

现在终于明白,谢谢了。 

黑夜猫头鹰 | 园豆:3 (初学一级) | 2012-05-03 12:44
其他回答(2)
0

“我们的窗体fontDialog1都没生成来如何判断fontDialog1.ShowDialog() 它是true还是false,同样的还有DialogResult.OK它是true还是false”

在这个窗体fontDialog1中确定按钮中写 this.DialogResult = DialogResult.OK;不就有值了吗。

收获园豆:12
悟行 | 园豆:12559 (专家六级) | 2012-05-02 13:59

大哥,(在这个窗体fontDialog1中确定按钮中写 this.DialogResult = DialogResult.OK;不就有值了吗。)重点是不用写这句话就可以编程啊

支持(0) 反对(0) 黑夜猫头鹰 | 园豆:3 (初学一级) | 2012-05-02 14:02

@黑夜猫头鹰: richTextBox1.Font = fontDialog1.Font;这个回传值能得到吗??????????

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-05-02 14:06

@黑夜猫头鹰: 用那一句话的重点就是可以回传值。richTextBox1.Font = fontDialog1.Font

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-05-02 14:07

@荒野的呼唤: 我知道可以回传值啊,但是我想问的是:怎么会弹出 fontDialog1 窗体啊,你就告诉我呗,别兜圈子了大哥

支持(0) 反对(0) 黑夜猫头鹰 | 园豆:3 (初学一级) | 2012-05-02 23:11

@黑夜猫头鹰: 因为执行了if (fontDialog1.ShowDialog() == DialogResult.OK)这一句,但是第一次执行的时候,fontDialog1.ShowDialog() 不等于 DialogResult.OK,就没有执行下面的,弹出了窗体fontDialog1.ShowDialog() 。

支持(0) 反对(0) 悟行 | 园豆:12559 (专家六级) | 2012-05-03 09:30

@荒野的呼唤: 谢谢了,我终于知道为什么了,是我对if语句,理解不透,我以前学习的是不执行if (fontDialog1.ShowDialog() == DialogResult.OK)时要执行其中的表达式,以前我以为都是直接用的,例如

static void Main(string[] args)
{
int a = 3;
if ( a == 8)
{
int d;
d = a + 3;
Console.WriteLine(d);
}

不知道原来是要执行其中的判断条件的

现在终于明白,谢谢了。 

 

支持(0) 反对(0) 黑夜猫头鹰 | 园豆:3 (初学一级) | 2012-05-03 12:43
0

fontDialog1.ShowDialog()这一句就是表示调用fontDialog1的ShowDialog方法了,而且返回值是true,当然会弹出fontDialog1的窗口。“DialogResult.OK”表示返回值是否为true,是的话就执行下面你的赋值语句了。

我是一个初学者,请大家多多提意见,带我学习。谢谢!

收获园豆:6
木兰香 | 园豆:252 (菜鸟二级) | 2012-05-03 09:13

谢谢,辛苦了

支持(0) 反对(0) 黑夜猫头鹰 | 园豆:3 (初学一级) | 2012-05-03 12:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册