C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: ウェブブラウザで、表示したページを拡大・縮小


(過去ログ 71 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■41491 / inTopicNo.1)  ウェブブラウザで、表示したページを拡大・縮小
  
□投稿者/ RT (136回)-(2009/09/20(Sun) 20:23:23)

分類:[.NET 全般] 

こんにちは。RTです。
いつもお世話になっております。
C#にて、プログラミングを行っています。

 質問なのですが、以前スクロールバーを使って、ウェブブラウザに表示したページを拡大・縮小する方法を教えて頂きました。
 今回は、別フォームを開き、そこで拡大・縮小率(25,50,75,100,125,150,175,200)を選択し、決定をして、メインフォーム上のウェブブラウザで表示したページを拡大・縮小したいと考えております。
 選択した率での拡大・縮小をページに反映するプログラムの書き方について、アドバイスよろしくお願い致します。
引用返信 編集キー/
■41494 / inTopicNo.2)  Re[1]: ウェブブラウザで、表示したページを拡大・縮小
□投稿者/ 魔界の仮面弁士 (1311回)-(2009/09/20(Sun) 21:23:18)
2009/09/20(Sun) 22:54:31 編集(投稿者)
No41491 (RT さん) に返信
> 以前スクロールバーを使って、ウェブブラウザに表示したページを拡大・縮小する方法を教えて頂きました。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=40006&KLOG=69
の事ですね。後から見た人にも分かるよう、記事Noなり、URL なりを示していただけると助かります。


> 今回は、別フォームを開き、そこで拡大・縮小率(25,50,75,100,125,150,175,200)を選択し、決定をして、
> メインフォーム上のウェブブラウザで表示したページを拡大・縮小したいと考えております。
拡大・縮小そのものは実装できているけれども、複数フォーム間のデータ連携方法が分からない、
という事でしょうか。だとすると、WebBrowser を使っているかどうかは、この際関係無さそうですね。


> 選択した率での拡大・縮小をページに反映するプログラムの書き方について、アドバイスよろしくお願い致します。
まず、その拡大率設定ダイアログを作る事はできていますか?
ダイアログ ボックスの作り方については、下記を参照してみてください。
http://msdn.microsoft.com/ja-jp/library/2chz8edb.aspx

また、その別フォームをモーダルとして開きたいのか(ShowDialog メソッド)、
それともモードレス(Show メソッド)にしたいのかで、実装方法が若干異なってきます。

----
ShowDialog を使って表示させたいのであれば、選択した率をプロパティとして返すと良いでしょう。
たとえば、ColorDiagog では、ダイアログで選択した色を取得するために
  private void button1_Click(object sender, EventArgs e)
  {
      using (ColorDialog dlg = new ColorDialog())
      {
          if (dlg.ShowDialog() == DialogResult.OK)
          {
              this.BackColor = dlg.Color;
          }
      }
  }
といったコードを記述する事になります。

それを真似て、たとえば今回は
  if (dlg.ShowDialog() == DialogResult.OK)
  {
    拡大率 = dlg.Zoom;
  }
となるように、その別フォームをデザインしてみては如何でしょうか。



また、呼び出した別ダイアログで拡大率を変更したときに、OK を押して閉じずとも
呼び出し元の画面にリアルタイムに結果が伝わるようにしたい場合には、
ダイアログ側に、結果を伝えるためのイベントを用意すると良いでしょう。

利用側の実装は、FontDialog の Apply イベントを使う際と同じような書き方になるハズです。

  private void button1_Click(object sender, EventArgs e)
  {
      fontDialog1.ShowApply = true;   // [適用]ボタンを追加
      if (fontDialog1.ShowDialog() == DialogResult.OK)
      {
          this.button1.Font = fontDialog1.Font;
      }
  }

  private void fontDialog1_Apply(object sender, EventArgs e)
  {
      this.button1.Font = fontDialog1.Font;
  }


なお、この「イベント」を使って、選択された情報(今回は拡大率、上記例では Color)を
伝える方法は、モードレス ダイアログの際にも応用できるかと思います。

引用返信 編集キー/
■41496 / inTopicNo.3)  Re[2]: ウェブブラウザで、表示したページを拡大・縮小
□投稿者/ RT (137回)-(2009/09/20(Sun) 22:34:22)
No41494 (魔界の仮面弁士 さん) に返信

>拡大率 = dlg.Zoom;

Zoomというプロパティは、どうやって引き出すのでしょうか?



引用返信 編集キー/
■41497 / inTopicNo.4)  Re[3]: ウェブブラウザで、表示したページを拡大・縮小
□投稿者/ 魔界の仮面弁士 (1312回)-(2009/09/20(Sun) 22:51:25)
No41496 (RT さん) に返信
> >拡大率 = dlg.Zoom;
> Zoomというプロパティは、どうやって引き出すのでしょうか?

ダイアログ フォーム側に、
    private int _zoom = 100;
    public int Zoom;
    {
        get { return _zoom; }
        set { _zoom = value; }
    }
と記述しておけば、Zoom プロパティ(の雛形)のできあがりです。

# 省略表記も使えます。
#   public int Zoom { get; set; }


あとは、コントロール(スクロールバーとか NumeriUpDown とか ComboBox とか)にて得られた拡大率を、
ダイアログ自身の this.Zoom プロパティにセットするようなコードを加えれば、要件を満たせるかと。

引用返信 編集キー/
■41498 / inTopicNo.5)  Re[3]: ウェブブラウザで、表示したページを拡大・縮小
□投稿者/ Azulean (460回)-(2009/09/20(Sun) 22:52:32)
No41496 (RT さん) に返信
> Zoomというプロパティは、どうやって引き出すのでしょうか?
自分で作るものです。

MSDN では下記のような説明もあります。
http://msdn.microsoft.com/ja-jp/library/56taefba.aspx
引用返信 編集キー/
■41499 / inTopicNo.6)  Re[4]: ウェブブラウザで、表示したページを拡大・縮小
□投稿者/ RT (138回)-(2009/09/20(Sun) 23:33:06)
No41497 (魔界の仮面弁士 さん) に返信

>利用側の実装は、FontDialog の Apply イベントを使う際と同じような書き方になるハズです。

> private void button1_Click(object sender, EventArgs e)
> {
> fontDialog1.ShowApply = true; // [適用]ボタンを追加
> if (fontDialog1.ShowDialog() == DialogResult.OK)
> {
> this.button1.Font = fontDialog1.Font;
> }
> }

> private void fontDialog1_Apply(object sender, EventArgs e)
> {
> this.button1.Font = fontDialog1.Font;
> }

利用側とは、メインフォーム側の事でしょうか?
Applyイベントの使い方がいまいちわかりません。自分で作るとかそういう事でしょうか?
引用返信 編集キー/
■41500 / inTopicNo.7)  Re[5]: ウェブブラウザで、表示したページを拡大・縮小
□投稿者/ 魔界の仮面弁士 (1313回)-(2009/09/21(Mon) 02:32:42)
No41499 (RT さん) に返信
>> 利用側の実装は、FontDialog の Apply イベントを使う際と同じような書き方になるハズです。
> 利用側とは、メインフォーム側の事でしょうか?
ダイアログを呼び出す側の事です。

> Applyイベントの使い方がいまいちわかりません。
提示例の事だとすれば、FontDialog クラスのヘルプを参照してください。

> 自分で作るとかそういう事でしょうか?
ダイアログを自作する以上、そのイベントやプロパティもすべて自身で用意することになります。
私が示したのは、標準的なダイアログの設計スタイルと、その実装に必要な資料の URL です。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -