質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

884閲覧

C# フォーム外に設置したアイテムを表示させたい。

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2022/12/08 21:48

編集2022/12/09 08:21

前提

windows.formsアプリケーションを製作しております。
C#でパネルを使って、フォーム外にあるアイテムを表示させようとしています。

フォーム表示が800×600の大きさです。
パネルの大きさが800×600にしてます。
パネルのロケーションの位置を(0,0)で表示させ、(800,1200)の大きさにあります。
表示させたいアイテムのロケーションが(0,800),(400,800)にあり、
大きさがそれぞれ同じ(400,800)の大きさです。
表示させたいアイテム同士は同じパネルの上にあり、
アイテムはパネルの上にある事がデザイン画面で確認できており、
新しくインスタンス化してコントロールに追加する必要はございません。

最大拡大するとこうなります。モニターの大きさは1200,900です。
イメージ説明

実現したいこと

  • パネルをスクロールできるように設定する。
  • パネルの上にあるアイテムをスクロールさせてフォーム外からフォーム内に表示させる。

発生している問題・エラーメッセージ

ありません。

該当のソースコード

C#

1namespace test 2{ 3 public partial class Form1 : Form 4 { 5 public Form1 () 6 { 7 Panel1.VerticalScroll.Visible = true; 8 Panel1.VerticalScroll.Enabled = true; 9 } 10 } 11}

試したこと

スクロールバーを表示させたがメインパネルが表示されない。

補足情報(FW/ツールのバージョンなど)

VSを使い.NETframeWork4.8で動作させております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/12/08 22:28

パネルの中にあるので、パネルにオートスクロールプロパティを使用してみたのですが、画像の感じになってしまいました。
退会済みユーザー

退会済みユーザー

2022/12/08 22:51

前にも言いましたが何を何で作っているか書きましょう。Windows Forms アプリと言うことが書いてないです。コードを見れば分かるだろうとか思ってるかもしれませんが、手抜きしないで書いてください。
退会済みユーザー

退会済みユーザー

2022/12/08 22:57

質問の説明では何をしたいのかわかりません。 前にもお願いしましたが、読んでください⇒ https://teratail.com/help/question-tips 特に以下のところ: "人に質問をするには、自分が何を尋ねたいかを知っている必要があります。これは、「自分が今『何がわからないのか』がわかっていて、言語化できている」ということです。何がわからないかわからない人から質問を受けても、答える側も困ってしまいます"
退会済みユーザー

退会済みユーザー

2022/12/08 22:57 編集

それは回答と関係ある事柄でしょうか。 関係ある事柄だと思い、変更いたしました。
退会済みユーザー

退会済みユーザー

2022/12/08 23:11 編集

前にもご説明いただいたので、今回はURLの方は大丈夫です。ありがとうございます。
退会済みユーザー

退会済みユーザー

2022/12/08 23:35

先のあなたのスレッドのように、日本語レベルで意味が分からなくて、技術的な話をする以前の問題なのです。
退会済みユーザー

退会済みユーザー

2022/12/08 23:36

そうなんですね。
退会済みユーザー

退会済みユーザー

2022/12/08 23:44

そうなんです。質問の始まり、 > フォーム表示が800×600の大きさです。パネルの大きさが800×600にしてます。パネルのロケーションの位置を(0,0)で表示させ、(800,1200)の大きさにあります。 ・・・からして意味がわかりません。
退会済みユーザー

退会済みユーザー

2022/12/08 23:53

そうなんですね。
退会済みユーザー

退会済みユーザー

2022/12/09 00:04

そうなんです。 指摘を受けて質問を書き直したようですが、依然として意味不明なんです。
Zuishin

2022/12/09 00:36 編集

> フォーム表示が800×600の大きさです。 Form クラスのオブジェクトのサイズが ClientWidth = 800, ClientHeight = 600 ということですね。 わかります。 > パネルの大きさが800×600にしてます。 パネルの大きさをフォームに合わせているわけですね。 わかります。 > パネルのロケーションの位置を(0,0)で表示させ、(800,1200)の大きさにあります。 大きさが変わり、前提が崩れました。 意味不明です。 > 表示させたいアイテムのロケーションが(0,800),(400,800)にあり、 > 大きさがそれぞれ同じ(400,800)の大きさです。 表示させたいアイテムというのはここで初めて出てきましたが、説明がないために何なのかわかりません。 フォームやパネルとの関係もわかりません。 前二つが二つのアイテムのフォーム上の位置であり、大きさはどちらも同じであると仮定して読み進めます。 つまりどちらもフォームから外にはみ出しており、全く見えません。 > 表示させたいアイテム同士は同じパネルの上にあり、 > アイテムはパネルの上にある事がデザイン画面で確認できており、 > 新しくインスタンス化してコントロールに追加する必要はございません。 アイテムはパネルの子であることがわかりました。 フォーム上の位置と思っていたものをパネル上の位置に修正します。 > 最大拡大するとこうなります。モニターの大きさは1200,900です。 モニターの大きさがどう関係するのかわかりません。 フォームやパネルは依然として高さが 600 であり、表示したいアイテムは完全に隠れているはずですが、「自分」と「相手」というのが表示したいアイテムではないかと推察されます。 つまり説明と食い違っています。 > スクロールバーを表示させたがメインパネルが表示されない。 完全に意味不明です。 高さの件を少し勘違いしていたために修正しました。
Zuishin

2022/12/09 00:53

登録から二年経ちましたが、過去の質問のことごとくに回答者が首をひねっているので、そろそろ質問の質を上げても良いのではないかと思います。
退会済みユーザー

退会済みユーザー

2022/12/09 08:39

> 技術とか日本語の使い方は質問と関係ないです。 「僕の技術とか日本語の使い方」は大いに関係あります。 読みましたか?⇒ https://teratail.com/help/question-tips "人に質問をするには、自分が何を尋ねたいかを知っている必要があります。これは、「自分が今『何がわからないのか』がわかっていて、言語化できている」ということです" 「僕の技術とか日本語の使い方」の問題で、上のことができてなくて話が通じてないということは自覚してないのですか? 何度か言ってるのに改善されなくて、上のように逆切れしてるということは、そうなんだろうね。 > 理解してくださる方もいらっしゃいますのでもうこれ以上の言及はお止めください。 同じようなことをすれば何回でも言いますので期待しておいてください。
guest

回答1

0

ベストアンサー

「ScrollableControl.ScrollControlIntoView(Control) メソッド」
https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.scrollablecontrol.scrollcontrolintoview?view=netframework-4.8

もしくは、

「ScrollableControl.AutoScrollPosition プロパティ」
https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.scrollablecontrol.autoscrollposition?view=netframework-4.8

を使ってください。

cs

1public partial class Form1 : Form 2{ 3 public Form1() { 4 InitializeComponent(); 5 } 6 7 protected override void OnShown(EventArgs e) { 8 base.OnShown(e); 9 Panel1.AutoScroll = true; 10 Panel1.ScrollControlIntoView(表示したいコントロール); 11 //Panel1.AutoScrollPosition = new Point(0, Panel1.VerticalScroll.Maximum); 12 } 13}

投稿2022/12/08 23:27

編集2022/12/08 23:29
KOZ6.0

総合スコア2626

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問