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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

2回答

895閲覧

C#で他のファイルからフォームのOpacityを変更する方法を知りたい。

muuQwQ

総合スコア4

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2021/09/19 09:23

編集2021/09/19 13:30

現在Visual StudioのWindows Formsを使って、ソフトを作っているのですが、他のファイルからOpacityを変更することができなかったので質問させていただきました。

C#

1Main main = new Main(); //Mainは主なフォームの名前 2main.Opacity = 1.00;

このプログラムをMainではないファイルで実行したのですが、変化がありませんでした。
※実行時のMainのOpacityは0.00です。

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

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

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

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

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

gentaro

2021/09/19 11:33

そもそも「ファイル」って単位で何かをするものだ、と考えているなら、基礎が全く理解できてないと思われるんで、入門書を買って勉強するところから始めましょう。 現状では回答してもどうせ理解できないだろう、としか思えません。
退会済みユーザー

退会済みユーザー

2021/09/19 11:40

Main とは何ですか? ここに書いてないことは知り得ない第三者に分かるように書いてください。 https://teratail.com/help/question-tips ←これを読んでください。そこに書いてありますが "人に質問をするには、自分が何を尋ねたいかを知っている必要があります。これは、「自分が今『何がわからないのか』がわかっていて、言語化できている」ということです。一見簡単なようですが、実はとても難しいことです。"
muuQwQ

2021/09/19 13:29

すみません。 Mainは主なフォームの名前です。 そしてgentaroさん、できれば教えていただきたいのですが、どういうことでしょうか?
gentaro

2021/09/19 14:37

入門書を買って勉強するところから始めましょう。 現状では回答してもどうせ理解できないだろう、としか思えません。
guest

回答2

0

ベストアンサー

csharp

1foreach (var form in Application.OpenForms.OfType<Main>()) 2{ 3 form.Opacity = 0.5; 4}

投稿2021/09/19 12:36

Zuishin

総合スコア28669

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

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

muuQwQ

2021/09/19 13:21

Zuishinさんありがとうございます。 できました。 ですが、仕組みがわかりません。 詳しく説明していただけますでしょうか?
Zuishin

2021/09/19 13:27 編集

Application.OpenForms は現在開いているフォームの集合です。 https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.application.openforms?view=net-5.0 その中で Main クラスのものを選択しています。 https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.oftype?view=net-5.0#System_Linq_Enumerable_OfType__1_System_Collections_IEnumerable_ そのそれぞれに Opacity = 0.5 を適用しているので、同じクラスのフォームが複数開くことがあるならもう一工夫必要です。 仕組みがわからないのは何も知らないからなので、このようにわからないところを調べたらいいと思います。 調べてもわからないなら基礎が足りていないので、まず入門から始めてください。
muuQwQ

2021/09/19 13:32

詳しい説明、提案ありがとうございました。 学びになりました。
Zuishin

2021/09/19 13:33

提案というか、最低限すべきことです。 同じような質問を繰り返すのなら、回答者はどんどん減って、苦言ばかりでまともな回答はつかなくなるでしょう。
muuQwQ

2021/09/19 13:41

そうですね。 microsoft公式サイト、teratailの他の回答もしっかり検索した上での回答でないと回答者が減っていくということですよね? やはり、C#総合1位、PowerShell総合1位のようなベテランの方のコメントは役に立ちます。
guest

0

C#

1Main main = new Main();

これで現在表示しているフォームとは違うインスタンスを新しく作っています。
どうにかして表示しているインスタンスを取得するようにしてください。

投稿2021/09/19 09:30

YAmaGNZ

総合スコア10489

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

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

muuQwQ

2021/09/19 11:09

すみません。理解ができないのですが...。 もう少し詳しく教えていただけませんか?
YAmaGNZ

2021/09/19 11:20

例えると 現在使用しているパソコン(PC1)とは別のパソコン(PC2)を買ってきてPC2の設定を変更しているのに PC1を見て設定が変わってないな~って悩んでいる状態です。 こういったインスタンスの考え方はフォームだけではなくいろいろなところに出てくる基本的なことになります。 インスタンスという言葉を初めて知ったのであれば、「C# インスタンス」などで検索すればいろいろ解説が見つかるかと思います。
muuQwQ

2021/09/19 11:55

え~と、上記のような例を使うと、僕のやりたいことは、PC2からPC1の設定をしたいということなのですが、伝わっていましたでしょうか? 国語が苦手なのですみません。
YAmaGNZ

2021/09/19 12:03 編集

MainをPC、別フォームなのか別クラスなのかは分かりませんがそちらを操作する人と考えた場合の話となります。 本来であれば、PC1をそのまま操作すればいいわけです。 それなのに新しいPCを買ってきて操作しているのが提示されたソースです。 なので、PC2を買わずにPC1を操作しましょう というのが私の回答になります。
muuQwQ

2021/09/19 12:11 編集

別フォームです。 そのやり方でもいいのですが、できれば別フォームから操作したいです。 できませんかね?
YAmaGNZ

2021/09/19 12:21

どうも前提となる知識が足りていないので理解してもらえないようです。 私が言っているのは その別フォームで「新しいMain」を作らないで「現在表示しているMain」を操作してくださいということです。 その為に別フォームではその現在表示しているMainのインスタンスを得る必要があります。 そして受け渡す方法にはいろいろあります。 まずはインスタンスと何なのか、クラスやフォームとは何なのかなど基本部分をしっかりと理解できるようになってください。
muuQwQ

2021/09/19 12:36

ご丁寧にありがとうございます。 これから調べてみます。 ベストアンサーにするのは遅くなると思いますが、お待ちしていただけると幸いです。
YAmaGNZ

2021/09/19 12:49

ベストアンサーをつけなければならないからとあいまいに理解した気になったところでやめるのではなく、しっかりと理解するようにしてください。 今後、別のフォームのコントロールを触りたいとか色々と出てくるでしょうからインスタンスの考え方は絶対に理解しなくてはならないことです。
muuQwQ

2021/09/19 13:15

すみません。 調べても理解できませんでした。 コードを教えていただけないでしょうか? できれば、説明も付きでお願いしてもよろしいでしょうか?
muuQwQ

2021/09/19 13:17

すみません。一度上記のコメントを取り消しでお願いします。
YAmaGNZ

2021/09/19 13:18

図書館や本屋に行って身の丈にあった書籍を選んで学習しましよう。 私には何もわからない人に説明できる技量はありません。
muuQwQ

2021/09/19 13:25

長い時間ありがとうございました。 勉強になりました。
muuQwQ

2021/09/19 13:36

ベストアンサーは他の方に譲ることになりました。 しかし、優しい方の回答でとてもわかりやすかったです。高評価だけはつけさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問