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

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

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

Re[4]: デザイナに配置したコントロールが表示されなくなる


(過去ログ 73 を表示中)

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

■42419 / inTopicNo.1)  デザイナに配置したコントロールが表示されなくなる
  
□投稿者/ simano (16回)-(2009/10/15(Thu) 14:57:09)

分類:[C#] 

こんにちは。

VisualStudio2008、.Net2.0の環境で、
以下の手順でデザイナ上に配置したコントロールが表示されなくなる
現象に悩んでいます。

1.Panel1に、Label_Aを"Document = Top"で配置する。
2.Panel1に、ToolStrip_Aを"Document = Top"で配置する。
3.Panel1に、DataGridView_Aを"Document = Fill"で配置する。
4.DataGridView_Aを右クリックして"前面"に設定する。
5.各コントロールに名前をつける。

上記の手順で、最初は意図した通りに、
上からLabel_A, ToolStrip_A, DataGridView_Aの順で
コントロールが並んでいます。

しかし、しばらく他のPanel上のコントロールを変更するなどしているうちに、
気づくとToolStrip_Aがデザイナ画面上から消えてしまいます。

以下のようにいろいろ確認したのですが、原因がわかりませんでした。
・プログラムを開始してフォームを起動した場合も、ToolStrip_Aは表示されない。
・プロパティ画面のチョイスボックスから、ToolStrip_Aを選択すると、デザイナ上の元の位置に表示される。
 しかし、他のコントロールをクリックするとまた消えてしまう。
・ソースのDesigner.csを確認すると、ToolStrip_AはPanel1にAddされている。
・VisualStudioを再起動しても現象は変わらない。

結局、何度もToolStripコントロールの削除→追加を繰り返したのですが、
毎回同じ現象がおきてしまいます。

原因等わかる方がいましたら、ご教授よろしくお願いいたします。

引用返信 編集キー/
■42444 / inTopicNo.2)  Re[1]: デザイナに配置したコントロールが表示されなくなる
□投稿者/ Jitta on the way (463回)-(2009/10/15(Thu) 19:46:51)
No42419 (simano さん) に返信
> こんにちは。
>
> VisualStudio2008、.Net2.0の環境で、
> 以下の手順でデザイナ上に配置したコントロールが表示されなくなる
> 現象に悩んでいます。
>
> 1.Panel1に、Label_Aを"Document = Top"で配置する。
> 2.Panel1に、ToolStrip_Aを"Document = Top"で配置する。
> 3.Panel1に、DataGridView_Aを"Document = Fill"で配置する。
> 4.DataGridView_Aを右クリックして"前面"に設定する。

ここ
“前面”“背面”が、表示される順番に関係します。
fill は、top や left が埋めた残りを埋めるので、「最背面」に置いて下さい。
引用返信 編集キー/
■42451 / inTopicNo.3)  Re[2]: デザイナに配置したコントロールが表示されなくなる
□投稿者/ simano (17回)-(2009/10/15(Thu) 21:02:46)
No42444 (Jitta on the way さん) に返信
> “前面”“背面”が、表示される順番に関係します。
> fill は、top や left が埋めた残りを埋めるので、「最背面」に置いて下さい。

試してみたのですが、「最背面」にすると、Topに設定したLabel_AやToolStrip_Aの
領域までDataGridView_Aが広がってしまうようです。

背面等についての理解があいまいだったので調べてみました。
以下で、Jittaさんがおっしゃっていることが書かれていますね。
http://www.atmarkit.co.jp/fdotnet/dotnettips/297changezorder/changezorder.html

この場合、「背面」に設置したいコントロールが、
1.Label_A、2.ToolStrip_Aの順番になっているので、
Designer.csを自動生成するプログラムが順番を意図した通りに
制御できなくなってしまったのかもしれません。

(単純なレイアウトなら問題ないのかもしれません。
問題のデザイナは、階層構造が込み入ってしまっているので…)

そもそも、Topのコントロールが二つあったのが良くなかったと思い、
Label_AとToolStrip_Aのコントロールを、新しく1つのPanelにAddして、このPanelを背面としました。
これで解決できたと思います。

どうもありがとうございました!
解決済み
引用返信 編集キー/
■42459 / inTopicNo.4)  Re[3]: デザイナに配置したコントロールが表示されなくなる
□投稿者/ Jitta (604回)-(2009/10/15(Thu) 23:45:46)
No42451 (simano さん) に返信
> ■No42444 (Jitta on the way さん) に返信
>>“前面”“背面”が、表示される順番に関係します。
>>fill は、top や left が埋めた残りを埋めるので、「最背面」に置いて下さい。
>
> 試してみたのですが、「最背面」にすると、Topに設定したLabel_AやToolStrip_Aの
> 領域までDataGridView_Aが広がってしまうようです。

あら?前後ろが逆だったかな?すみません。
解決済み
引用返信 編集キー/
■42520 / inTopicNo.5)  Re[4]: デザイナに配置したコントロールが表示されなくなる
□投稿者/ simano (18回)-(2009/10/16(Fri) 21:07:11)
訂正です。

参照先のURLで、以下のように書かれているのを見落としてしまっていました。

>このように細かくzオーダーを調整する必要がある場合には、最背面に配置したいコントロールから順番にすべてのコントロールに対して「最前面へ移動」を実行していき、全コントロールのzオーダーを設定し直すとよいだろう。

この通りに、Label_Aから順番に「最前面へ移動」を実行していったところ、
最初に挙げた階層構造でレイアウトすることができました。
(一日デザイナをいじっていましたが、後からデザインが崩れるということもありませんでした。)

前のレスの解決方法よりも、こちらがスマートな方法なのだと思います。


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


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

このトピックに書きこむ

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

管理者用

- Child Tree -