トップページ⇒tech
1001コメント300KB

ふらっとVisual C#,C♯,C#(初心者用) Part111

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/04/05(土) 22:08:28.72ID:l3iN8hNI
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問。
質問者自身なんだか意味がよく分からない質問。
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて、他スレ・他板へ行くことを勧められることがあります、ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっとVisual C#,C♯,C#(初心者用) Part110
http://toro.2ch.net/test/read.cgi/tech/1388377636/

■関連スレ
C#, C♯, C#相談室 Part82
http://toro.2ch.net/test/read.cgi/tech/1386763696/

■コード貼るなら↓使ってください
http://ideone.com/
0002デフォルトの名無しさん2014/04/05(土) 22:25:28.14ID:dnqr6Oke
>>1乙
0003デフォルトの名無しさん2014/04/05(土) 22:57:18.91ID:HfzhZYKB
>>1
おつ!
0004デフォルトの名無しさん2014/04/05(土) 23:00:41.23ID:4PQFLBxx
>>1おっさん
0005前9712014/04/05(土) 23:34:54.89ID:fZTxo1xf
OnBeforeNavigateで調べたんですがBeforeNavigateはNET1.1ではあるようなんですがC#2010では見つかりませんでした
http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
これはVC#2005みたいですが、VC#2010でもNavigatingイベントを使うんですか?
あと基底コンストラクタに渡す引数がないのに明示的に:base()を使う必要ってあるんですか?
0006デフォルトの名無しさん2014/04/05(土) 23:47:54.72ID:dnqr6Oke
BeforeNavigateは別のクラスAxWebBrowser使うときの話
うん
別にない
0007デフォルトの名無しさん2014/04/05(土) 23:52:08.44ID:dnqr6Oke
あ、そこに書いてるようにNavigatingで必要な情報足りないなら
やっぱりDWebBrowserEvents2::BeforeNavigate2とか使う必要があるよ
0008デフォルトの名無しさん2014/04/06(日) 12:13:20.73ID:B8PUb7p+
Visualはもうないんだから外せよ
0009デフォルトの名無しさん2014/04/07(月) 17:50:25.12ID:6uHQfqYj
フォームが非アクティブになった時に、フォームとその子コントロールの明度を一括で下げたいんですがどうすればいいのでしょうか
0010デフォルトの名無しさん2014/04/07(月) 17:59:07.70ID:3UJhq+PE
WinFormにそんなシャレオツ機能は存在しない
フォームのクライアント領域内ならともかくタイトルバーとかはシステム側の領域だし
FormをDisableにすれば一部の彩度は下がるけどな
0011デフォルトの名無しさん2014/04/07(月) 20:53:56.62ID:wKuIb640
シャレオツw
0012デフォルトの名無しさん2014/04/07(月) 23:51:01.19ID:6uHQfqYj
>>10
透明度下げることで対処しようと思います
ありがとうございました
0013デフォルトの名無しさん2014/04/08(火) 22:15:26.21ID:cT60U4kI
Form上にコントロールを1000個程度配置してスクロールさせると、フリーズします。
WindowsXP, 7 ではスムーズに動いていたのが、Windows8.1にした途端起き始めました。

1000個というのはPictureBoxなのですが、これをButtonに変更して1000個表示するだけの
テスト用アプリを作ってもやはり発生します。

グラボのドライバを最新にしたり、システムのプロパティの視覚効果などを変更してみても
改善されません。

これが自分のPCの固有の問題か、Win8.1に共通の現象かを切り分ける方法ってありますか?
1000個も配置するという設計がおかしいのでしょうが…
0014デフォルトの名無しさん2014/04/08(火) 22:19:41.79ID:fmWss6Bj
1000個も配置するのが問題
0015デフォルトの名無しさん2014/04/08(火) 22:58:41.96ID:cT60U4kI
やっぱりそうですよね
0016デフォルトの名無しさん2014/04/09(水) 01:42:52.07ID:Ks/JGiSE
わらた
0017デフォルトの名無しさん2014/04/09(水) 01:56:19.82ID:SM981zJv
>>13 試しに動作確認してしんぜよう。ソース送レ
0018デフォルトの名無しさん2014/04/09(水) 02:40:54.14ID:4evLHR2U
>>17
普通にフォームのプロジェクト作成して、ロードイベントに以下を書いて、

private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
Button btn = new Button();
btn.Top = i * 24;

this.Controls.Add(btn);
}
}

それからForm1のAutoScrollをtrueにしただけなのですが…。
0019デフォルトの名無しさん2014/04/09(水) 10:40:06.97ID:+JqWH5tw
>>13
安直だが、FrameWorkを両方4.5で動かしてみるとか
0020デフォルトの名無しさん2014/04/09(水) 15:41:18.28ID:fBP+BGwa
重くしないとハードが売れない
0021デフォルトの名無しさん2014/04/10(木) 12:20:18.64ID:HRaWKIoy
WPFならハンドル食わないらしいから試してみれば?
0022デフォルトの名無しさん2014/04/10(木) 15:04:18.17ID:nYklgNp5
コンボボックスの値を変更したら、もう一つのコンボボックスと値を交換しようとしているのですが、途中からおかしくなります。
参照している値を間違えてしまっているのでしょうか?よろしくお願いします。

ComboBox[] comBox = new ComboBox[2];
private void Form1_Load(object sender, EventArgs e){
comBox[0] = comboBox1;
comBox[1] = comboBox2;
for (int i = 0; i < 2; i++)
comBox[i].DropDownClosed += new EventHandler(comBox_DropDownClosed);

for (int i = 0; i < 2; i++){
comBox[0].Items.Add(i);
comBox[1].Items.Add(i);
}
comBox[0].SelectedIndex = 0;
comBox[1].SelectedIndex = 1;
}

private void comBox_DropDownClosed(object sender, EventArgs e){
int index = -1;
for (int i = 0; i < comBox.Length; i++)
if (comBox[i].Equals(sender) == true){
index = i;
break;
}

int intSel = Convert.ToInt32(comBox[index].SelectedText); // 選択していた番号
int intDest = Convert.ToInt32(comBox[index].SelectedItem); // 変更先

comBox[intDest].Text = comBox[intSel].Text; // 入れ替える
}
0023デフォルトの名無しさん2014/04/10(木) 19:53:41.63ID:b/gE/MKY
>>21
VirtualizingStackPanelとか使えば、そもそも1000個もいらないんだけどな。
0024デフォルトの名無しさん2014/04/10(木) 20:45:40.51ID:mP4FkQtt
ナニコレ
WPF?
0025デフォルトの名無しさん2014/04/11(金) 09:09:51.97ID:+5PGJ+FS
VSのC#です。
0026デフォルトの名無しさん2014/04/12(土) 13:36:56.16ID:QXbrFFBS
C#で音声認識を扱いたいんですがどれをどう使えばいいのかさっぱりわかりません
おすすめの方法があれば教えて下さい
0027デフォルトの名無しさん2014/04/12(土) 16:51:06.63ID:K9bTN6Ty
>>26
無料のやつは、認識率悪くて使い物にならんよ。

本気でやりたいなら、
100万とかする業務用のソフト買いな。
0028デフォルトの名無しさん2014/04/12(土) 17:41:14.47ID:9BhBrkhV
プログラマなら認識率がどれくらいか見当つくよな
IMEの誤変換なんて可愛いもの
そもそも一体何に使いたいのか
0029デフォルトの名無しさん2014/04/12(土) 19:14:54.67ID:kHAj/7de
>>26
キーワードだけ教えてやる。
2文字目はSだ。
0030デフォルトの名無しさん2014/04/12(土) 19:24:50.54ID:gqk0H39S
GoogleのAPIを叩く
0031デフォルトの名無しさん2014/04/12(土) 19:53:09.57ID:kaC5V1Cc
日本版エシュロン。
0032デフォルトの名無しさん2014/04/12(土) 20:35:38.46ID:rzyqPrtx
モサドに技術供与受けろや
0033デフォルトの名無しさん2014/04/12(土) 22:10:52.95ID:NOz3Q708
Microsoft Speech Platform
0034デフォルトの名無しさん2014/04/13(日) 05:51:21.92ID:VrI+9WRO
Microsoft Bob

ネーミングのセンスがさすがマイクロさんやな
0035デフォルトの名無しさん2014/04/13(日) 06:17:44.86ID:qYmwgSBw
Robert!
Bob: Oh! That's me

Robert の別称
0036デフォルトの名無しさん2014/04/13(日) 11:13:57.20ID:PYHY3KdE
「C#」は当初かなり違和感のある名前だったけどすっかり浸透しちゃったな
天下のMSがこの名前で出してコケたら大恥だった
D(笑)
0037デフォルトの名無しさん2014/04/13(日) 11:40:41.79ID:Ughvqkdn
Microsoftはいつもネーミングが糞
comも.netも検索しにく過ぎ
0038デフォルトの名無しさん2014/04/13(日) 19:53:33.31ID:x/KLDcUY
2009年にもなってGoとか名前をつけるどこぞに比べれば…まあどんぐりの背比べだな
0039デフォルトの名無しさん2014/04/13(日) 22:03:26.85ID:JRCCH/EO
>>37
VB6の検索しにくさはガチ
0040デフォルトの名無しさん2014/04/13(日) 22:14:24.92ID:Ughvqkdn
>>39
vb6はそもそも情報自体が少ないからね
さらにvb.netのせいで探しにくくなった
0041デフォルトの名無しさん2014/04/14(月) 03:59:00.92ID:7M5WCkF4
練習として複数のPictureBoxに、高速で複数の画像を入れ替えまくってみたんですが
private void button1_Click(object sender, EventArgs e)
{
 Thread t = new Thread(new ThreadStart(loop));
 t.Start();
}
void loop(){
 for (int i = 0; i < 1000; i++)
 {
  pictureBox1.Image = mybmp[i % 3];
  pictureBox2.Image = mybmp[(i + 1) % 3];
  pictureBox3.Image = mybmp[(i + 2) % 3];
  Thread.Sleep(50);
 }
}
ときどき下のようなエラーが出ます。
これは、単純にPictureBoxの描画処理が終わらないまま次の描画を始めようとしたためでしょうか?
同一スレッド内の問題だからか、PictureBoxをlockしてみても改善しません。
実際この通りの動作をさせるわけではないですが、高速で画像を更新することはあると思うのでこのままだと気持ち悪い・・・。

>型 'System.InvalidOperationException' のハンドルされていない例外が System.Drawing.dll で発生しました
>追加情報:オブジェクトは現在他の場所で使用されています。
0042デフォルトの名無しさん2014/04/14(月) 04:40:22.32ID:CBNE2ubH
threadからFormをいじろうとするとそうなるんじゃなかったか?

http://kawakawa2000.jugem.jp/?eid=55

こんなんだったかな
0043デフォルトの名無しさん2014/04/14(月) 05:56:06.53ID:+kBgZJjN
回答: UIスレッド以外からコントロールに触んなボケェ
0044デフォルトの名無しさん2014/04/14(月) 13:35:26.08ID:Rj6AhJf8
delegateで描画させた方がいいね
後はとりあえずPallarel.forでコントロール別に分けた方がマルチスレッドになって
タスクマネージャでCPU利用率見た時にとりあえず嬉しいw
0045412014/04/14(月) 13:39:40.86ID:7M5WCkF4
ありがとう、デリゲートとinvokeってここで使うのか。
ついでに、サンプルプログラムを見ているとthisが何を指しているかよくわからないことがあるんだけど
thisが何を指すか調べる方法ってあります?
0046デフォルトの名無しさん2014/04/14(月) 13:42:19.94ID:CBNE2ubH
thisはその関数が走っている時の関数自身じゃないの?
classへの参照のようにも見えるけど、スレッド動いてるとスレッド自身になるよね
0047デフォルトの名無しさん2014/04/14(月) 13:44:54.89ID:CBNE2ubH
例えばボタンの文字列をスレッドから書き換える
private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(loop));
 t.Start();
}
void loop()
{
//for (int i = 0; i < 1000; i++)
//{
// button1.Text = "new text";
// Thread.Sleep(50);
//}
SetText("New Text");
}
private delegate void SetTextCallback(string msg);

private void SetText(string msg)
{
if (button1.InvokeRequired)
{
Invoke((MethodInvoker)(()=> {
button1.Text = msg; // "Hello, world";
}));

return;
}

// 以下本来の処理
button1.Text = msg;
}
}
0048デフォルトの名無しさん2014/04/14(月) 13:47:28.80ID:CBNE2ubH
あ、もちろん参照先のページにも書いてあったと思うけど、UIはスレッドセーフじゃないので
マルチスレッドで動かしても、勝手にMutex掛かるよ
0049デフォルトの名無しさん2014/04/14(月) 14:32:41.71ID:7M5WCkF4
えーと、thisについてよくわからないのは・・・
例えば>>47のInvokeってthisが省略されてますよね?
この場合、thisはFormを指してるのでいいのかな・・・というのを確認する方法ってあるかなと。
慣れると自明に思えるのかもしれませんが、まだ戸惑うことが多いので確認方法があるとうれしいのです。
0050デフォルトの名無しさん2014/04/14(月) 14:33:20.46ID:+kBgZJjN
>>48
>thisはその関数が走っている時の関数自身じゃないの?
>classへの参照のようにも見えるけど、スレッド動いてるとスレッド自身になるよね

初心者は答えなくていいよ。マジで。
0051デフォルトの名無しさん2014/04/14(月) 14:35:58.41ID:+kBgZJjN
>>49
クラスメソッド内のthisはそのクラスのインスタンスを指してるんだよ。
0052デフォルトの名無しさん2014/04/14(月) 17:30:10.70ID:CBNE2ubH
初心者が間違った答えをしてもいいじゃん
お前みたいなでかいツラされて不快になるよりマシ
0053412014/04/14(月) 17:31:10.51ID:7M5WCkF4
ありがとう、重ねて質問失礼します。
Invokeを利用することでエラーは回避できました。
ですが、スレッド実行中にフォームを閉じるとエラーが起こるようになりました。
this.IsHandleCreatedやthis.IsDisposedでフォームの存在を確かめてからInvokeを実行させようとしてみたのですがうまくいきません。
どのように回避したらいいのでしょうか。
下は、>>41のloop()内にInvokeを反映させたものです。
ループ実行中にフォームを閉じると、
>追加情報:破棄されたオブジェクトにアクセスできません。
のエラーが出ます。

for (int i = 0; i < 1000; i++)
{
 if(this.IsDisposed)break;
 this.Invoke((MethodInvoker)delegate()
 {
  pictureBox1.Image = mybmp[i % 3];
  pictureBox2.Image = mybmp[(i + 1) % 3];
  pictureBox3.Image = mybmp[(i + 2) % 3];
 });
 Thread.Sleep(50);
}
0054412014/04/14(月) 17:40:58.42ID:7M5WCkF4
むしろ、スレッド実行中にフォームを閉じさせない、
あるいはフォームのデコンストラクタでスレッド実行を停止するのが正しい方向性なのかな?
0055デフォルトの名無しさん2014/04/14(月) 17:59:22.80ID:GRbiX2xU
>>54
スレッド実行を停止させるとデッドロックするな
0056デフォルトの名無しさん2014/04/14(月) 18:58:37.52ID:+mkYAk9j
スレッドは理解があやふやな奴が使うとバグ発生機になるな
0057デフォルトの名無しさん2014/04/14(月) 19:41:21.08ID:GRbiX2xU
>>56
ガチで1次元(時間軸)上のスパゲッティコードが出来上がるw
今回の例でもInvokeの仕組み、WindowsのGUIモデル(少々)、volatile、ロックあたり押さえといて欲しい
0058デフォルトの名無しさん2014/04/14(月) 21:11:44.44ID:xiJSquwx
Windows7 api codepack使って音楽ファイルのタグ拾っていたんだが、
謎のAccess Violationが発生して3日悩んだが
なんとなく32bitでコンパイルしたら治りやがった
0059デフォルトの名無しさん2014/04/15(火) 09:10:47.46ID:eg/wih/V
x86にしてみるとか最適化を外してみると、謎の不具合が解消されることが稀に良くある
0060デフォルトの名無しさん2014/04/15(火) 09:14:04.10ID:iSGwDvUA
>初心者が間違った答えをしてもいいじゃん
>お前みたいなでかいツラされて不快になるよりマシ

これは酷い
0061デフォルトの名無しさん2014/04/15(火) 09:52:27.96ID:b3iAuu/a
モヒカンが聞いたら大変なことになるな
0062デフォルトの名無しさん2014/04/16(水) 09:14:38.36ID:Wy9kGQMK
WORDの文章にフォームやコントロールを画像として張り付けたいのですが、何か良い方法はありますでしょうか?

http://support.microsoft.com/kb/316384/ja
このサイトを参考に作成したのですが、画像の作成や貼り付けはありません。

http://msdn.microsoft.com/ja-jp/library/ms178792.aspx
msdnになりますと、画像ファイルの読み込みのみあります。

コントロールを一度画像ファイルに保存してから読み込めば良いのでしょうが、
それでは毎回画像ファイルを作成する必要があり、あまりスマートでは無いので
直接画像としてコントロールを張り付け出来るような方法がありましたら、よろしくお願いします。
0063デフォルトの名無しさん2014/04/16(水) 09:39:36.36ID:8awiXMyd
クリップボード経由とか
docxならOpen XML SDK使うとかで埋め込めるだろうけどまずフォーマット理解するところからになるな
0064デフォルトの名無しさん2014/04/16(水) 09:59:48.79ID:jh5A/a7z
Word文書じゃないけど

using( Bitmap bmp = new Bitmap( this.Width, this.Height ) )
{
 this.DrawToBitmap( bmp, new Rectangle( Point.Empty, this.Size ) );
 Clipboard.SetDataObject( bmp );
 RichTextBox rb = new RichTextBox();
 rb.Paste();
 rb.SaveFile( @"C:\Users\hoge\Desktop\test.doc" );
}

とか。位置指定とか考えだすと面倒くさくて死ぬるな
0065デフォルトの名無しさん2014/04/16(水) 10:04:25.73ID:jh5A/a7z
>>62
つか
http://msdn.microsoft.com/ja-jp/library/ms178792.aspx
のリンク先見てにSelectionオブジェクトを取得してPasteすればクリップボード経由で挿入できるな
0066デフォルトの名無しさん2014/04/16(水) 11:45:22.88ID:wJUsRdtr
>>59
「良く」なのか「稀」なのかはっきりせい!
と、突っ込むところまでが遠足
0067デフォルトの名無しさん2014/04/16(水) 12:10:13.15ID:Wy9kGQMK
>>63-65
クリップボード経由で出来ました、ありがとうございます。
0068デフォルトの名無しさん2014/04/16(水) 18:41:47.03ID:o1DhIOoD
VisualC#2010ですが
Form1.cs[デザイン]でフォームのサイズを設定してその数値を
プロパティのSystem.Drawing.Sizeに入れても数値がズレるのは何故なのでしょうか。
ClientSizeをSystem.Drawing.Sizeにバインドしています。
0069デフォルトの名無しさん2014/04/16(水) 18:57:54.81ID:RT2B6Kf1
>>68
日本語でおk
0070デフォルトの名無しさん2014/04/16(水) 19:23:09.06ID:4/4/+OZx
ListBoxにマイコンピュータの一覧を表示させる方法ありませんか?
0071デフォルトの名無しさん2014/04/16(水) 19:40:31.94ID:fX4bKwvJ
あります
0072デフォルトの名無しさん2014/04/16(水) 19:50:27.85ID:o1DhIOoD
>>69
フォームデザインの画面でフォームのサイズを調節してそのサイズの数値を
アプリケーション設定項目に入力してもフォームのサイズが同じにならないのです
アプリケーション設定項目のサイズの数値とフォームデザイン画面のプロパティのサイズの数値が一致せず、
片方をいじると片方の数値が変化してしまいます
0073デフォルトの名無しさん2014/04/16(水) 19:56:12.90ID:yQi7dKzk
言わんとしてることは分かるが
ClientSizeってミソなんだろ
デザイナに表示されてるのは非クライアント領域も含んでると
0074デフォルトの名無しさん2014/04/16(水) 20:10:32.77ID:s5kasKNy
それもあるが>>72はそもそもアプリケーション設定が何なのか分かってないとしか
0075デフォルトの名無しさん2014/04/16(水) 20:40:31.81ID:jh5A/a7z
>>72
Form.SizeとClient.Sizeの違いとか
0076デフォルトの名無しさん2014/04/16(水) 20:41:11.58ID:jh5A/a7z
既出だったなごめんなさい
0077デフォルトの名無しさん2014/04/16(水) 22:27:57.36ID:+VUax7lD
マイコンピュータの一覧って事はマイコンピュータが複数あると
いう謎環境なのか
0078デフォルトの名無しさん2014/04/16(水) 23:02:59.71ID:4/4/+OZx
分かる人いなさそうだね残念
0079デフォルトの名無しさん2014/04/16(水) 23:07:45.45ID:+VhpgL3Y
ドライブの一覧とは違う情報を取りたいの?
それならたぶん、API叩かないといけない
0080デフォルトの名無しさん2014/04/16(水) 23:17:51.65ID:4/4/+OZx
>>79
散々ググった結果ShellAPIを使えば出来るんじゃないかなというのは分かったんだけど
難しくて何かいい方法あったりしないかなと思って質問したんだよね

自分で試行錯誤してみますありがとう
0081デフォルトの名無しさん2014/04/17(木) 00:30:58.60ID:yVkbU7bN
WMIでいけないか?
0082デフォルトの名無しさん2014/04/17(木) 10:16:41.51ID:3ZJR1sBx
ここみるよろし
http://msdn.microsoft.com/ja-jp/magazine/dd861346.aspx

SHGetKnownFolderItemでマイコンピューターを表現するIShellItem取得
↓
IShellItem.BindToHandlerでそのIShellFolderを取得
↓
IShellFolder.EnumObjectsでIEnumIDList取得して、IEnumIDListで内容を列挙
0083デフォルトの名無しさん2014/04/17(木) 10:52:57.28ID:s16FfDLr
NumericUpDownでHexaDecimal=trueにして
小文字のアルファベットを入力中にタイマーなどでその値を取得すると
小文字が大文字に変換されます。

そこまでは良いのですが、同時にカーソルがいちばん左に移動してしまいます。
するとabcdと打ったつもりが、DCBAとなってしまいます。

小文字が大文字に変換されたときにカーソルを移動しないようにするには
どうすれば良いですか?

何かをオーバーライドすれば良いのでしょうか?
0084デフォルトの名無しさん2014/04/17(木) 11:23:17.40ID:CRM5LnHb
助けてください。

弥○なんかの販売管理ソフトで、伝票入力画面の下部にあるリスト部分って
入力すると自動的に(しかも複数テキストボックス&複数行)追加されますが、
ああいう動作を実現するにはどのコントロールを使えばいいんですか?
0085デフォルトの名無しさん2014/04/17(木) 11:25:43.70ID:CRM5LnHb
>>84 の言語書き忘れました。C#です。
0086デフォルトの名無しさん2014/04/17(木) 11:25:58.93ID:gmrG8BhO
標準コントロールには存在しない
0087デフォルトの名無しさん2014/04/17(木) 11:31:42.82ID:CRM5LnHb
FlowLayoutPanelとかTableLayoutPanelを駆使して、
その中にTextBox配置して、みたいな感じで方向性はあってますかね?

この方法をやろうとして数時間躓いてます。
0088デフォルトの名無しさん2014/04/17(木) 11:44:30.79ID:CRM5LnHb
>>86
自己解決というか、レスをもらったことで少し理解しました。
こういうのを実現するライブラリが販売されてたんですね。
導入を検討しようと思います。
ありがとうございました。
0089デフォルトの名無しさん2014/04/17(木) 12:09:39.88ID:cV35zYaX
>>81-82
ありがとう参考にします
0090デフォルトの名無しさん2014/04/17(木) 13:07:07.79ID:umXeCPzC
>>87
複数テキストボックスをユーザーコントロールにまとめてやればFlowLayout案でも簡単だと思う
0091デフォルトの名無しさん2014/04/17(木) 13:27:22.33ID:TvKM2fdI
>>84
Visual Basic Power PacksのDataRepeater コントロールはどうだろう
0092デフォルトの名無しさん2014/04/17(木) 19:52:18.24ID:WDbWaLnY
//コマンドラインを配列で取得する
string[] cmds;
cmds = System.Environment.GetCommandLineArgs();
http://dobon.net/vb/dotnet/programing/commandline.html

フォームとコマンドプロンプトの両方で使えるようにしたいのですが、
フォームは正常に動作して、コマンドプロンプトの時で容量もほとんど使わないのにメモリ不足って出るのは、下のが原因と考えて良いのでしょうか?

大容量の RAM が搭載されていると、メモリ不足を示すエラー メッセージが表示される
http://support.microsoft.com/kb/253912/ja
0093デフォルトの名無しさん2014/04/17(木) 20:14:05.96ID:3ZJR1sBx
Windows2000以降のコマンドプロンプトの話なら関係ないだろ

他の部分にバグがあるんだろ
ミニマムコードで試してみそ
0094デフォルトの名無しさん2014/04/17(木) 20:51:33.80ID:BiFRjuqF
http://www.nicovideo.jp/watch/nm6049209
この動画を落としたswfファイルをフォームに貼り付けた
Shockwave Flash Objectで再生できないのはなぜなのでしょうか?
コードはこんな感じです。
axShockwaveFlash1.LoadMovie(0, @"f:\test.swf");
axShockwaveFlash1.Play();
0095デフォルトの名無しさん2014/04/17(木) 21:09:02.94ID:WDbWaLnY
>>93
ありがとう。
System.IO.Path.GetDirectoryName(strCmd[0]);
で、コマンドプロンプトだとフォルダ名が取得出来無かったから、C:\に書き込もうとしてエラーになってた。
0096デフォルトの名無しさん2014/04/17(木) 21:20:50.59ID:umXeCPzC
それがなぜメモリ不足になるんだ?
0097デフォルトの名無しさん2014/04/17(木) 21:36:04.77ID:WDbWaLnY
最初に中の処理だけ外したらメモリ不足ってエラーが出たから、これだと思い込んでた・・・。
あとはコントロール配列にしてたくらいだけど、
イベントの追加とかはコマンドプロンプトでは関係ないからメモリ不足の表示って出る物かな?
0098デフォルトの名無しさん2014/04/17(木) 21:44:36.61ID:N1Srpcxj
まず、エラーってなんのこと?
例外がでるんなら、どの位置ででてるかわかるだろ
0099デフォルトの名無しさん2014/04/18(金) 06:55:54.45ID:gGWuEQS3
なぜメモリ不足になる、で思い出したが、Image.FromFileで
ファイルのイメージ形式が有効ではありません。
または
GDI+ はファイルのピクセル形式をサポートしません。
の場合、OutOfMemoryExceptionが発生する
ってのも意味不明
http://msdn.microsoft.com/ja-jp/library/stf701f5%28v=vs.110%29.aspx
0100デフォルトの名無しさん2014/04/18(金) 07:23:17.77ID:xhIZwZfQ
それはGDI+がE_OUTOFMEMORY返してくるから
0101デフォルトの名無しさん2014/04/18(金) 07:54:35.47ID:gGWuEQS3
誤解させてすまん
根っこが意味不明なだけでそれは知ってる
■ このスレッドは過去ログ倉庫に格納されています