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

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

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

Splitterの位置を次回立ち上げの時再現したい


(過去ログ 8 を表示中)

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

■9239 / inTopicNo.1)  Splitterの位置を次回立ち上げの時再現したい
  
□投稿者/ iyone718 二等兵(1回)-(2006/12/16(Sat) 18:45:05)

分類:[C#] 


分類:[C#] 

C#のビギナーです。Formの上に、Panel+Splitterを配置しました。プログラムを実行すると、Splitterの位置は伸び縮みするのですが、プログラムを終了して、再立ち上げをすると、Splitterの位置が元の位置(プログラム作成の時の位置)に戻ってしまいます。これを、Explorerの様に、一度変更したら、変更した位置で立ち上がる様にしたいのですが、どの様にすれば良いのか、お教え下さい。
 私なりに、下記の様にやってみたのですが、旨くいきません。
  @ プログラム終了時に、SplitterのLocationのX、Yを保存する。
  A プログラム立ち上がり時に、保存データを読み出す。
  B 呼び出したX、Yを、下記の方法でsetする。
      this.splitter1.Location = new Point(X,Y);
勿論、X、Yの値が、終了時の値になっている事は、確認しました。
 単純な事だろと思うのですが、一人でやっているもので、教えて貰う人がいないので、どなたかご教授お願い致します。

0
引用返信 編集キー/
■9244 / inTopicNo.2)  Re[1]: Splitterの位置を次回立ち上げの時再現したい
□投稿者/ 渋木宏明(ひどり) 伍長(57回)-(2006/12/16(Sat) 22:56:57)
渋木宏明(ひどり) さんの Web サイト

分類:[C#] 

>  私なりに、下記の様にやってみたのですが、旨くいきません。

デザイナ上で、Splitter を配置した後にペインのサイズを調節するのと同じ手順をコードで実現すれば良いです。

Splitter と接している Panel.Dock = DockStyle.Fill 「ではない」方のペインの幅(または高さ)を設定してみては?


0
引用返信 編集キー/
■9245 / inTopicNo.3)  Re[1]: Splitterの位置を次回立ち上げの時再現したい
□投稿者/ ダッチ 曹長(93回)-(2006/12/16(Sat) 22:58:13)

分類:[C#] 

No9239に返信(iyone718さんの記事)
> C#のビギナーです。Formの上に、Panel+Splitterを配置しました。プログラムを実行すると、Splitterの位置は伸び縮みするのですが、プログラムを終了して、再立ち上げをすると、Splitterの位置が元の位置(プログラム作成の時の位置)に戻ってしまいます。これを、Explorerの様に、一度変更したら、変更した位置で立ち上がる様にしたいのですが、どの様にすれば良いのか、お教え下さい。
>  私なりに、下記の様にやってみたのですが、旨くいきません。
>   @ プログラム終了時に、SplitterのLocationのX、Yを保存する。
>   A プログラム立ち上がり時に、保存データを読み出す。
>   B 呼び出したX、Yを、下記の方法でsetする。
>       this.splitter1.Location = new Point(X,Y);
> 勿論、X、Yの値が、終了時の値になっている事は、確認しました。
>  単純な事だろと思うのですが、一人でやっているもので、教えて貰う人がいないので、どなたかご教授お願い致します。

スプリッターに対して Location を設定しても変化はありません。
デザイナ画面でスプリッターの Location を変更しても変化がないことを確認できます。
ではどの値を設定するとスプリッターの位置を変更できるかというと、
パネルの幅もしくは高さです。

フォームにパネル、スプリッターの順番に配置されていて、ともに Dock が DockStyle.Left だとします。
その場合は、パネルの幅を保存しておき再起動した時にパネルの幅を設定すると思い通りの動作になると思います。

そもそもスプリッターの Location を設定してもなぜ変化がないかというと Dock が設定されているからです。

0
引用返信 編集キー/
■9269 / inTopicNo.4)  Re[2]: Splitterの位置を次回立ち上げの時再現したい
□投稿者/ iyone718 二等兵(2回)-(2006/12/17(Sun) 18:44:04)

分類:[C#] 

No9244に返信(渋木宏明(ひどり)さんの記事)
>> 私なりに、下記の様にやってみたのですが、旨くいきません。
>
> デザイナ上で、Splitter を配置した後にペインのサイズを調節するのと同じ手順をコードで実現すれば良いです。
>
> Splitter と接している Panel.Dock = DockStyle.Fill 「ではない」方のペインの幅(または高さ)を設定してみては?
>

 早速のご指導有り難う御座います。
「Panelの寸法の方を変えないとダメですよ!」のご指摘、ごもっともと納得し、テストしてみましたが、その方法が良く分かりません。下記の二つの方法をやってみたのですが、エラーがでて、旨く動きません。素人の為、エラーの意味が分からないのです。どなたか、お教え頂けると有り難いのですが。

 (1)1回目に行ったテスト
     this.panel1.Size.Height=200;
    この時でたエラー
     //D:\TEST\T-2\Form1.cs(186): 変数ではないため、'System.Windows.Forms.Control.Size' の戻り値を変更できません。

 (2)2回目に行ったテスト
     Form1.panel1.Size.Height=200;
    この時でたエラー
     //D:\TEST\T-2\Form1.cs(188): 静的でないフィールド、メソッド、またはプロパティ 'T_2.Form1.panel1' で、オブジェクト参照が必要です。
     //D:\TEST\T-2\Form1.cs(188): 変数ではないため、'System.Windows.Forms.Control.Size' の戻り値を変更できません。

 以上、宜しくお願い致します。

0
引用返信 編集キー/
■9273 / inTopicNo.5)  Re[3]: Splitterの位置を次回立ち上げの時再現したい
□投稿者/ 渋木宏明(ひどり) 伍長(59回)-(2006/12/17(Sun) 23:18:14)
渋木宏明(ひどり) さんの Web サイト

分類:[C#] 

this.panel1.Height=200;


0
引用返信 編集キー/
■9284 / inTopicNo.6)  Re[4]: Splitterの位置を次回立ち上げの時再現したい
□投稿者/ iyone718 二等兵(3回)-(2006/12/18(Mon) 11:27:26)

分類:[C#] 

No9273に返信(渋木宏明(ひどり)さんの記事)
> this.panel1.Height=200;
>

 解決しました。本当に単純な事だったんですね!こんな単純な事が分からないと云う事は、C#を殆ど理解していないと云う事の様で、もう少し、勉強致します。
 本当に、有り難う御座いました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -