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

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

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

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

Q&A

解決済

2回答

3277閲覧

"名前を付けて保存"のダイアログが表示されない。

Tanaka.sot

総合スコア18

C#

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

0グッド

0クリップ

投稿2020/06/28 04:47

前提・実現したいこと

タイトルの通りc#(VisualStudioではないcsファイル)で名前を付けて保存のダイアログを表示したい。

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

以下のようなコードを実行してもダイアログが表示されない。
(コンパイルは通ります。)

該当のソースコード

test.cs

C#

1using System; 2using System.Windows.Forms; 3 4public partial class test : Form 5{ 6 static void Main(string[]args) 7 { 8 SaveFileDialog SaveFileDialog1 = new SaveFileDialog(); 9 SaveFileDialog1.Title = "ファイルを保存する"; 10 SaveFileDialog1.InitialDirectory = Application.ExecutablePath; 11 SaveFileDialog1.FileName = "Data1.csv"; 12 SaveFileDialog1.Filter = "CSVファイル(*.csv)|*.csv|すべてのファイル(*.*)|*.*"; 13 SaveFileDialog1.FilterIndex = 1; 14 if (SaveFileDialog1.ShowDialog() == DialogResult.OK) 15 { 16 string FILE_NAME = SaveFDia.FileName; 17 } 18 } 19}

です。回答よろしくお願いいたします。

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

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

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

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

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

Zuishin

2020/06/28 04:57

Visual Studio を使いましょう。
退会済みユーザー

退会済みユーザー

2020/06/28 05:17

「VisualStudioではないcsファイル」とは一体何なのですか?
Tanaka.sot

2020/06/28 05:49

C:\Windows\Microsoft.NET\Framework64\v4.0.30319 というフォルダにある、csc.exeでコンパイルするファイルという意味です。 わかりづらくて申し訳ありません。
Zuishin

2020/06/28 05:59

Visual Studio を使いましょう。
Zuishin

2020/06/28 06:01 編集

「使いましょう」は「使え」という意味です。念のため。
退会済みユーザー

退会済みユーザー

2020/06/28 06:10 編集

Zuishin さんが言われるように Visual Studio を使いましょう。使わない事情があるのですか? であれば、その事情を何とか解決して Visual Studio を使うようにするのが先です。そもそもコードがきちんと書けてないし(はっきり言うと問題外)、そこをまず解決(まともなコードが書ける知識を得る)しないと何ともならないと思います。Visual Studio にはコードの書き方レベルからサポートしてくれる機能があります。なので、たぶん、Visual Studio を使えるようにする以外に有効な解決策はないと思います。
Tanaka.sot

2020/06/28 07:39

分かりました。解答ありがとうございます。 Visualstudioを使えるようにしようと思います。
Zuishin

2020/06/28 08:13

ベストアンサーの回答も正しいけど、あなたの意図するところとは違うでしょ? 経験も積んでないのに近道しようとして獣道を歩くからです。
guest

回答2

0

ベストアンサー

using System; using System.Windows.Forms; public class test { [STAThread] static void Main(string[] args) { using (SaveFileDialog SaveFileDialog1 = new SaveFileDialog()) { SaveFileDialog1.Title = "ファイルを保存する"; SaveFileDialog1.InitialDirectory = Application.ExecutablePath; SaveFileDialog1.FileName = "Data1.csv"; SaveFileDialog1.Filter = "CSVファイル(*.csv)|*.csv|すべてのファイル(*.*)|*.*"; SaveFileDialog1.FilterIndex = 1; if (SaveFileDialog1.ShowDialog() == DialogResult.OK) { string FILE_NAME = SaveFileDialog1.FileName; } } } }

こんな感じでどうでしょうか。

投稿2020/06/28 06:22

miyasaka1963

総合スコア25

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

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

0

MainにSTAThread属性をつけてください。

cs

1[STAThread] 2static void Main(string[] args)

STAThreadAttribute クラス (System) | Microsoft Docs

投稿2020/06/28 06:21

編集2023/07/22 08:05
TN8001

総合スコア9363

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問