关于CppWebBrowser和RichEdit一起使用出现的问题

netying 2002-12-05 09:26:54
我的程序中同时用了这两个控件,就是在richedit上又放了一个 cppwebbrowser,
我分别用来显示TXT和HTM文件。
现在问题是这样的,代码如下:
filename=OpenDialog1->FileName;
if(OpenDialog1->FilterIndex==2) //如果打开的是HTML文件
{
CppWebBrowser1->Visible=true;
CppWebBrowser1->Align=alClient;
CppWebBrowser1->Navigate(WideString("File://"+filename));
}
else//如果打开的不是HTML类型的文件
{
CppWebBrowser1->Width=0;
CppWebBrowser1->Height=0;
CppWebBrowser1->Visible=false;
CppWebBrowser1->Align=alLeft;
RichEdit1->Visible=true;
RichEdit1->Lines->LoadFromFile(filename);
}

现在的情况时,如果我打开了一个HTM文件后,在打开TXT文件时,要打开两个才会把文件内容显示出来,如果只打开一次,还是显示原来已经打开的HTM文件,这是什么原因啊?

FilterIndex=2是HTM文件,FilterIndex=1是TXT文件

...全文
40 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
netying 2002-12-05
  • 打赏
  • 举报
回复
最后还是用了bringtofront有作用,但是要去掉其中的这几行代码:
CppWebBrowser1->Width=0;
CppWebBrowser1->Height=0;
CppWebBrowser1->Visible=false;
CppWebBrowser1->Align=alLeft;
不知道为什么。
多谢几位!
netying 2002-12-05
  • 打赏
  • 举报
回复
to zbc :你的代码中加上CppWebBrowser1->Align=alClient;
就显示不了TXT了
netying 2002-12-05
  • 打赏
  • 举报
回复
我发现了问题在于CppWebBrowser1->Align=alClient;
对齐方式是alClient,则似乎覆盖了下面的RichEdit


但是如果不这样,用下面这样设置
CppWebBrowser1->Height = 300;
CppWebBrowser1->Width = 392;

则不能使其充满窗口。

invalid 2002-12-05
  • 打赏
  • 举报
回复
CppWebBrowser好像是有这个问题visible没有用。
试试用BringToFront来切换。
zbc 2002-12-05
  • 打赏
  • 举报
回复
哦,真的感到奇怪啊, 设置visible 为false以后,cppwebbrowser仍然可以看到,但还是可以像下面这样来处理的,这是我改过的代码:
if (OpenDialog1->Execute())
{
AnsiString ext = ExtractFileExt(OpenDialog1->FileName);
ext = ext.LowerCase();
if (ext.Pos(".txt"))
{
CppWebBrowser1->Height = 0;
CppWebBrowser1->Width = 0;
RichEdit1->Visible = true;
RichEdit1->Clear();
RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
}
else if (ext.Pos(".htm"))
{
RichEdit1->Visible = false;
CppWebBrowser1->Height = 300;
CppWebBrowser1->Width = 392;
CppWebBrowser1->Navigate(WideString(OpenDialog1->FileName));
}
else
{
ShowMessage("暂时不支持");
}
}
pp616 2002-12-05
  • 打赏
  • 举报
回复
强制刷新richedit
netying 2002-12-05
  • 打赏
  • 举报
回复
to zbc:我这样做了呀,不行,非要打开两次才行,怪异

to 空心菜,多谢你呀,给我解决了好几个问题了,再想想,呵呵
invalid 2002-12-05
  • 打赏
  • 举报
回复
没有看出问题来。
zbc 2002-12-05
  • 打赏
  • 举报
回复
那你还不如这样,打开了htm文件,那么cppwebbrowser组件显示,打开了txt文件,那么richedit组件显示,这样不行吗?

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧