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

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

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

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

Q&A

解決済

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

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

1回答

0グッド

0クリップ

362閲覧

投稿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で動作させております。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/12/09 08:24

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

2022/12/09 03:14依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「問題・課題が含まれていない質問」という指摘を受けました。

退会済みユーザー

退会済みユーザー

2022/12/08 22:28

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

2022/12/08 22:51

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

2022/12/08 22:57

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

退会済みユーザー

2022/12/08 22:57 編集

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

退会済みユーザー

2022/12/08 23:11 編集

前にもご説明いただいたので、今回はURLの方は大丈夫です。ありがとうございます。
SurferOnWww

2022/12/08 23:35

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

退会済みユーザー

2022/12/08 23:36

そうなんですね。
SurferOnWww

2022/12/08 23:44

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

退会済みユーザー

2022/12/08 23:53

そうなんですね。
SurferOnWww

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

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

2022/12/09 08:39

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

回答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

総合スコア2252

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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