如何制作一个编辑框,以便当我在光标仍然在其中的情况下按 Enter 键时。然后它会转到编辑框中的网络浏览器中的那个网站?
谁能帮我?
如何制作一个编辑框,以便当我在光标仍然在其中的情况下按 Enter 键时。然后它会转到编辑框中的网络浏览器中的那个网站?
谁能帮我?
您应该使用OnKeyPress
事件而不是OnKeyDown
事件:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ord(Key) = VK_RETURN then
begin
Key := #0; // prevent beeping
WebBrowser1.Navigate(Edit1.Text);
end;
end;
TEdit
将 a和 a拖放TWebBrowser
到表单上,并将事件处理程序写入编辑控件,即OnKeyDown
:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_RETURN:
WebBrowser1.Navigate(Edit1.Text);
end;
end;
为了让它稍微优雅一点,我建议
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_RETURN:
begin
WebBrowser1.Navigate(Edit1.Text);
Edit1.SelectAll;
end;
end;
end;
如果您希望 URL 在系统的默认浏览器中打开,而不是在TWebBrowser
您的表单中打开,请替换WebBrowser1.Navigate(Edit1.Text)
为
ShellExecute(0, nil, PChar(Edit1.Text), nil, nil, SW_SHOWNORMAL);
在您添加ShellAPI
到您的使用条款之后。但现在请注意,您必须明确使用协议。例如,bbc.co.uk
不会工作,但http://bbc.co.uk
会。