Visual C# フォーラムVisual C# や言語に依存した話題© 2009 Microsoft Corporation. All rights reserved.Wed, 10 Feb 2010 11:52:09 Z623085ee-5a46-4672-86c8-e23780e740eahttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/019fe7ef-70e5-453f-b746-6e243c21aa10http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/019fe7ef-70e5-453f-b746-6e243c21aa10yasheekihttp://social.msdn.microsoft.com/Profile/ja-JP/?user=yasheekiCSV ファイルのフィールドデータ内容が分からない時のデータの読み取り<p>ぜひ、お尋ねしたい内容です。<br/>CSV ファイルのデータ内容が分からない時にそのデータをDataTable に読み取ることは、出来るのでしょうか?<br/>数値や日付もすべて文字列に変わってしまっても構わないです。<br/>で、その方法もぜひお伺いしたいのです。<br/><br/>よろしくおねがいします。</p>Tue, 09 Feb 2010 14:13:37 Z2010-02-10T11:52:07Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/07f64055-f1e7-4ca7-a0e0-6522ec1d652chttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/07f64055-f1e7-4ca7-a0e0-6522ec1d652cImagineBreakerhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=ImagineBreakerWavファイルのサンプリング周波数変換現在,Wavファイルを変換するプログラムを作成しようと試みています.<br/> Wavプログラミングの本を購入し,ステレオ&rarr;モノラル変換を行うコードは見つかりましたが,<br/> サンプリング周波数を変換するコードが本を見てもWeb上を探してもまったく見つかりません.<br/> <br/> どなたかWavファイルのサンプリング周波数を変換するC#のコードをお持ちでしょうか?<br/> お持ちの方は教えていただけるとありがたいです.<br/> <br/> Visual Studio 2008を使用し,.NET Framework3.5を用いて開発しています.<br/> 言語はC#です.<br/> <br/> よろしくお願いします.<br/>Mon, 25 Jan 2010 17:27:35 Z2010-02-10T08:48:14Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/42e9b0ca-59b4-4680-9db0-04954a137219http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/42e9b0ca-59b4-4680-9db0-04954a137219だんごろhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u3060%u3093%u3054%u308dASP.Net(C#)にて、ajax+SSL+SingleSignOn 環境で動作しないASP.Net(C#)にて、ajax+SSL+SingleSignOn 環境で動作しないことが判明<br/><br/>以下の状況で、調査中なんですが、調査ポイントや解決策などご存知の方がいらっしゃったらご回答いただけますか?<br/><br/>IIS6.0 SSL設定済み<br/>windowsServer2003<br/>SSO:Tivoli<br/><br/>通常の、SSLもSSOも利用していない環境では、ajaxの動作を確認済み。<br/>SSOだけの環境でのajaxの動作も確認済み。<br/>そこにSSLが加わったとき、ajax処理にて、&rdquo;SyntaxError&rdquo;が発生する。もしくは、戻り値が&quot;null&quot;のときもある。<br/><br/>web.configには、以下の文言は導入済み<br/>-------------------------------------------------------<br/>&nbsp; &lt;system.web&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;httpHandlers&gt;<br/>   &lt;!-- ajax利用のために --&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add verb=&quot;POST,GET&quot; path=&quot;ajax/*.ashx&quot; type=&quot;Ajax.PageHandlerFactory, Ajax&quot; /&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/httpHandlers&gt;<br/><br/>・・・<br/><br/>   &lt;!-- SSL利用のために --&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;authentication mode=&quot;Forms&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forms name=&quot;OPAP&quot; loginUrl=&quot;Login.aspx&quot; protection=&quot;All&quot; path=&quot;/&quot; timeout=&quot;60&quot;/&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/authentication&gt;<br/><br/>・・・<br/><br/>&nbsp; &lt;/system.web&gt;<br/>-------------------------------------------------------<br/><br/>Wed, 10 Feb 2010 01:13:26 Z2010-02-10T02:03:16Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/350bf71d-cdb4-42f8-b8a0-87faa7090701http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/350bf71d-cdb4-42f8-b8a0-87faa7090701sauberwindhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=sauberwindドライブの名前(ex.Hitachi HDT21010SLA360 ATA Device)を取得する方法は?こんにちは。<br/> <br/> USB接続されたリムーバブルディスクを操作するプログラムを作ろうとしています。<br/> 対象のディスクを判定するために、ドライブの名前(ex.Hitachi HDT21010SLA3<br/> 60 ATA Device)を取得したいのですが、方法がわかりません。<br/> <br/> &nbsp;DriveInfoクラスを用いた方法では取得できず、WMI(&quot;Win32_LogicalDisk&quot;)の<br/> プロパティにも該当するものがありませんでした。<br/> &nbsp;ご存知の方、教えていただけますようお願いいたします。<br/> <br/> よろしくお願いします。Mon, 08 Feb 2010 13:37:45 Z2010-02-10T09:49:52Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/ffa3cd68-15fc-4134-a8dc-54d27a2d0557http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/ffa3cd68-15fc-4134-a8dc-54d27a2d0557Jacobzhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=Jacobzwinformをweb pageに表示したいc#で開発(.Net 3.5)したwinformプログラムをウェブに表示したいです。<br/>可能でしょうか。最大限ソースを変わらなくてそのまま使いたいです。<br/>Tue, 02 Feb 2010 01:32:10 Z2010-02-09T04:14:40Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/08ccdffa-f753-49c2-9275-43ab531b6bcchttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/08ccdffa-f753-49c2-9275-43ab531b6bcc_kimurahttp://social.msdn.microsoft.com/Profile/ja-JP/?user=_kimuraxmlコメントについて<p>初めて投稿致します。 _kimura と申します。<br/><br/>仕事でC#を使用したソフトウェア開発を行っているのですが、<br/>xmlファイル(xmlコメントファイル)が旨く生成されずに困っています。<br/><br/>現象としては、独自のクラスを作成してクラスライブラリとして、ビルドし、<br/>dllとxmlコメントファイルを生成しています。<br/><br/>dllについては、修正現時点の状態で生成されるのですが、<br/>xmlコメントファイルについては、修正前の状態で生成されるため、<br/>dllとxmlコメントの整合性が、取れない状態になっています。<br/><br/>どなたか、対応方法が分かりましたらお教え頂けますでしょうか。<br/><br/></p>Wed, 03 Feb 2010 10:47:07 Z2010-02-08T13:46:42Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/72ae495b-91c6-4b3b-ae32-a3dde9d00076http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/72ae495b-91c6-4b3b-ae32-a3dde9d00076corohttp://social.msdn.microsoft.com/Profile/ja-JP/?user=coro「border="0"」で、W3C Markup Validation Serviceでエラーとなる。ASP.NET 3.5をベースとしたWebアプリケーションを作成しております。 <div><br/></div> <div>W3C Markup Validation Service(<a href="http://validator.w3.org/">http://validator.w3.org/</a>)で</div> <div>マークアップの整合性を確認しようとチェックしたところ、</div> <div>次のようなエラーが表示されました。</div> <div><br/></div> <div> <blockquote> <div>Line 27, Column 171: Attribute &quot;border&quot; exists, but can not be used for this element.</div> <div>&hellip;/Test.png&quot; alt=&quot;&quot; border=<span style="color:red">&quot;</span>0&quot; /&gt;</div> <div><br/></div> <div> <div>You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the &quot;Strict&quot; document type with a document that uses frames (e.g. you must use the &quot;Transitional&quot; document type to get the &quot;target&quot; attribute), or by using vendor proprietary extensions such as &quot;marginheight&quot; (this is usually fixed by using CSS to achieve the desired effect instead).</div> <div><br/></div> <div>This error may also result if the element itself is not supported in the document type you are using, as an undefined element will have no supported attributes; in this case, see the element-undefined error message for further information.</div> <div><br/></div> <div>How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) and/or check that they are both allowed in the chosen document type, and/or use CSS instead of this attribute. If you received this error when using the &lt;embed&gt; element to incorporate flash media in a Web page, see the FAQ item on valid flash.</div> </div> </blockquote> <div>XHTML 1.0 Transitionalではinputタグ内にborderを使ってはならないということのようです。</div> <div>ところが僕が作ったソースでは、次に書くとおりASP.NETコントロールであるImageButtonコントロールを使っているだけで、</div> <div>border属性は指定していません。</div> <div><br/></div> <blockquote> <div>入力したコード</div> <div> <div>&lt;asp:ImageButton ID=&quot;ImageButton1&quot; AlternateText=&quot;xxxxx&quot; ImageUrl=&quot;~/Images/Test.png&quot;&nbsp;runat=&quot;server&quot; onclick=&quot;ImageButton1_Click&quot; /&gt;</div> </div> </blockquote> <div><br/></div> <blockquote> <div>ASP.NETによって生成されたコード</div> <div><span style="color:#1f2126;font-family:Helvetica, Arial, sans-serif;font-size:13px;line-height:19px">&lt;input type=&quot;image&quot; name=&quot;ctl00$ctl00$ImageButton1&quot; id=&quot;ctl00_ctl00_ImageButton1&quot; src=&quot;Images/Test.png&quot; alt=&quot;xxxxx&quot; border=&quot;0&quot; /&gt;</span></div> <div></div> </blockquote> <div><br/></div> </div> <div>ASP.NETが自動的にborder属性を付け加えているようです。</div> <div><br/></div> <div>そこで、質問なのですが、</div> <div>W3C Markup Validation Serviceのチェックが成功するようにするために、</div> <div>このborder属性が生成されないようにはできないのでしょうか?</div> <div><br/></div> <div>実はASP.NET 1.1のころにもこのようなエラーに悩まされた時期がありました。</div> <div>結局はあきらめてメジャーバージョンアップで解決されるものと待ってましたが、</div> <div>ASP.NET 3.5でも同様な状態です...</div> <div><br/></div> <div>ひととおり、googleで日本語サイト、海外サイト含めて調べたのですが、</div> <div>この事例の報告の多くは海外サイトで話題になっているものの、</div> <div>どれも解決には至りませんでした。</div> <div><br/></div> <div>ASP.NETのImageButtonコントロールを使わず、直接HTMLのaタグとimgタグを指定するという手段も選択肢の1つですが、</div> <div>MasterPageなどを多様しているために、画像の場所を指定する際にImageUrl=&quot;<span style="color:red">~/</span>test.png&quot;のように、</div> <div>どの階層にいてもきちんと画像を指定できるようにする必要があり、この場合はImageButtonコントロールを使った方が都合がいいのです。</div> <div>(絶対パスを使うとローカルでデバッグする際に不便ですし...)</div> <div><br/></div> <div>ご存じの方がいらっしゃいましたら解決策を教えて下さい。</div>Sun, 24 Jan 2010 15:44:23 Z2010-02-08T09:33:40Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/d1dc65d5-354d-4fef-a226-b7c242489278http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/d1dc65d5-354d-4fef-a226-b7c242489278Myonhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=MyonFtpWebRequest.Proxyについていつもお世話になっております。環境:VS2005 C# WinXP<br/> FtpWebRequestを使用してFTP通信を行っております。<br/> 普通に使用するとGetResponseで以下のような例外が発生します。<br/> <br/> 「要求されたFTPコマンドはHTTPプロキシを使用しているときにはサポートされません」<br/> <br/> <br/> <br/> MSDN(<a href="http://msdn.microsoft.com/ja-jp/library/system.net.ftpwebrequest.proxy(VS.80).aspx">http://msdn.microsoft.com/ja-jp/library/system.net.ftpwebrequest.proxy%28VS.80%29.aspx</a> )<br/> には以下のように書かれていますので、何故例外なのかがまずわかりません。<br/> 「FtpWebRequest クラスは、HTTP プロキシおよび ISA ファイアウォール クライアント プロキシをサポートしています。」<br/> <br/> <br/> <br/> また、それではプロキシを無効にしようと思い、<br/> ftpWebRequest.Proxy = GlobalProxySelection.GetEmptyWebProxy()<br/> を行うと正しく動作しましたが、古い形式とのワーニングです。<br/> <br/> <br/> <br/> そこで以下の情報に従ってこれを書き換えました。<br/> <a href="http://msdn.microsoft.com/ja-jp/library/system.net.ftpwebrequest.proxy(VS.80).aspx">http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=internet%2Fuseproxy.html</a> <br/> ftpWebRequest.Proxy = null;<br/> <br/> <br/> <br/> これでも正しく動作しましたが、<br/> MSDN(<a href="http://msdn.microsoft.com/ja-jp/library/system.net.ftpwebrequest.proxy(VS.80).aspx">http://msdn.microsoft.com/ja-jp/library/system.net.ftpwebrequest.proxy%28VS.80%29.aspx</a> )<br/> には以下のようなことも書いてあります。<br/> 「ArgumentNullException:このプロパティは null 参照 (Visual Basic では Nothing) に設定できません。」<br/> <br/> <br/> <br/> ftpWebRequest.Proxy = null;<br/> はHTTPでは正しい書き方なのではないかとは思いますが、<br/> FTPの場合果たして正しいのかどうかというのが質問になります。<br/> 宜しくお願い致します。<br/> <br/> <br/> <br/> <br/>Tue, 02 Feb 2010 08:56:22 Z2010-02-07T13:55:27Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/95b4f95c-f87e-4227-86f9-4bdf98230581http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/95b4f95c-f87e-4227-86f9-4bdf98230581_BOSShttp://social.msdn.microsoft.com/Profile/ja-JP/?user=_BOSSEventLogクラスでイベントログにユーザーを記録したい<p>イベントログには「日付」「時刻」「種類」「ソース」「分類」「イベントID」「ユーザー」「コンピュータ」といった決まった出力項目があるのですが、EventLogクラスのWriteEntryメソッドでイベントログを登録すると、いつもユーザーだけが「N/A」になってしまいます。<br/><br/>「ユーザー」項目に、プログラム実行中のユーザー名を入れたいのですが、どのようにすればよいでしょうか。<br/>EventLogクラスのメンバーを一通り見てみたつもりなのですが、ユーザーに関する項目が見つからず、困っています。<br/><br/>現在書いているコードは以下の通りです。<br/><br/>//イベントログ出力<br/>EventLog evt = new EventLog(&quot;Application&quot;, &quot;.&quot;, Application.ProductName);<br/>evt.WriteEntry(message, EventLogEntryType.Information, id);<br/>//messageはstring型の変数、idはint型の変数<br/><br/>開発環境:<br/>WindowsXP SP3<br/>Visual Studio 2008 SPなし<br/><br/>同じことが実現できれば、EventLogクラスを使わない方法でも問題ないと考えています。<br/><br/>ご教示のほどどうぞよろしくお願いいたします。</p>Fri, 05 Feb 2010 03:16:31 Z2010-02-06T23:24:02Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/8735c343-7e30-453a-9cd8-a9e7e4afe1bdhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/8735c343-7e30-453a-9cd8-a9e7e4afe1bdshchhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=shchスタートアップに登録したコンソールアプリケーションが動作しない<p>タイトルの通り、スタートアップにアプリケーションのショートカットを配置しています。<br/>アプリケーションはコンソールアプリです。<br/><br/>OS起動時にアプリケーションが起動するのですが、稀にコマンドプロンプトが立ち上がるだけで処理が行われず、黒い画面のまま停止することがあります。<br/><br/>起動に成功した場合はログが画面にばーっと表示されます。<br/>また、Mainメソッドの中でConsole.Titleを設定していますが、それも反映されずにexeの名前が表示されています。<br/><br/>現象の原因、できれば解消方法について、ご教示いただけないでしょうか?<br/><br/><br/>現象が確認できている環境は下記の通りです。<br/>XP Professional SP2<br/>.NET Framework2.0 SP1</p> <pre lang="x-c#">class Program { static void Main(string[] args) { Mutex mu = null; try { // 2重起動防止 mu = new Mutex(false, &quot;XXXX&quot;); if (!mu.WaitOne(0, false)) { System.Windows.Forms.MessageBox.Show(XXXX.Properties.Settings.Default.LOG_MESSAGE, Application.ProductName.ToString()); return; } System.Reflection.AssemblyTitleAttribute title = (System.Reflection.AssemblyTitleAttribute) Attribute.GetCustomAttribute(System.Reflection.Assembly.GetExecutingAssembly(), typeof(System.Reflection.AssemblyTitleAttribute)); Console.Title = title.Title; // 省略 } catch (Exception ex) { // ログ出力_エラー文言 LogTrace.Trace(ex.Message); Console.WriteLine(XXXX.Properties.Settings.Default.CONTINUE); Console.ReadKey(false); } finally { if (mu != null) { mu.Close(); } // ログ出力_終了時 LogTrace.Trace(XXXX.Properties.Settings.Default.LOG_MESSAGE2); } } }</pre>Wed, 27 Jan 2010 01:54:34 Z2010-02-10T05:35:21Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/4cb4b8d7-bac1-4821-b14b-9a19aa02349bhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/4cb4b8d7-bac1-4821-b14b-9a19aa02349bあ~しゅhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u3042%uff5e%u3057%u3085CrystalReportsでチャートの範囲を動的に変更するには?CrystalReportsを使って、時間による値の変動を折れ線チャートとしたレポートを作ろうとしています。<br/>このとき、たとえば変動した値が1~3の時はチャートは0~4の間で表示し、1~9の変動の時はチャートは0~10の間で表示する、といった表示にしたいのですが、設定する方法がわかりません。<br/><br/>VisualStadio上で範囲を設定する場合は、「チャートオプション」&rarr;「グリッド」&rarr;「目盛」&rarr;「データ軸」の「最大値」と「最小値」を変えればいいのですが、これをプログラム上で行う方法はあるのでしょうか?<br/>プロパティでいうと、IGraphObjectのMaxDataAxisValueとMinDataAxisValueがそれに当たると思われ、IGraphObjectのNameなど一部のプロパティはCrystalDecisions.CrystalReports.Engine.ChartObjectで変更できるのですが、肝心のMaxDataAxisValueとMinDataAxisValueはこのクラスには存在しないようです。<br/><br/>何か他の方法で、変更することが出来るのでしょうか?<br/>開発環境は VisualStudio 2008 Professional を用い C#にて開発しており<br/>.Net&nbsp;Framework 2.0&nbsp;と VisualStudio 2008 付属の CrystalReports を使用しています。<br/><br/>以上、よろしくお願いします。Fri, 29 Jan 2010 06:48:19 Z2010-02-04T05:27:07Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/05899e2f-a068-43ad-81ab-d461984c8a1fhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/05899e2f-a068-43ad-81ab-d461984c8a1f西脇http://social.msdn.microsoft.com/Profile/ja-JP/?user=%u897f%u8107設定ファイル (XMLファイル) から必要な情報が取得できなかったときに throw すべき例外クラスは?西脇です。<br/><br/>設定ファイル (XMLファイル) から必要な情報を取得して、処理を行うことをしています。<br/>例をあげると、こんな XMLファイルです。<br/><br/>&lt;a&gt;<br/>&nbsp; &lt;b&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;c Command=&quot;Init&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d LocalDir=&quot;Log&quot; RemoteDir=&quot;ClientLog&quot; /&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d LocalDir=&quot;Journal&quot; RemoteDir=&quot;ClientJournal&quot; /&gt;<br/>&nbsp;&nbsp;&nbsp; &lt;/c&gt;<br/>&nbsp; &lt;/b&gt;<br/>&lt;/a&gt;<br/><br/>設定ファイルを XmlDocument に Load してから、の処理として、この、xpath = /a/b/c[@Command=&quot;Init&quot;] が見つからなかったときに、例外を throw しようと思います。<br/><br/>例外をみて何が間違えているのかをわかるようにしたいので、例外のプロパティで、BaseURI と 探していた xpath などがわかるとよいのですが、ApplicationException とかで Message&nbsp;に詳細を書くのがよいでしょうか。<br/><br/>また、.NET Framework 3.5 で定義済みの例外でこの目的(例外をみて何が間違えているのかをわかるようにしたい)にあう例外は存在しますでしょうか。Fri, 29 Jan 2010 03:01:25 Z2010-02-10T05:35:53Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/1b743b77-d208-46d2-9fcf-25866384fc5bhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/1b743b77-d208-46d2-9fcf-25866384fc5bサイタマンhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u30b5%u30a4%u30bf%u30de%u30f3.NetFrameworkアプリケーションを初回読み込みから速くするには?C#を使用し、.NetFrameworkを使用したWindowsアプリケーションを開発し、販売しております。<br/><br/>初歩的な質問と思いますが、.NetFrameworkを使用したアプリケーションにおいて、<br/>初回の読み込みが遅い問題の対策というものはありますでしょうか?<br/><br/>.NetFrameworkの仕様上の制限<br/>(2度目以降の読込はNetFrameworkのキャッシュ機能によってはやくなるが、初回は遅い)かと思うのですが、<br/>たびたび、お客様から「遅い!」とよく問い合わせがきてしまいますので、<br/>初回から読み込みを速くする方法がないか調べております。。。<br/><br/>もし、初回の読み込みからはやくする方法があるなら教えていただいてもよろしいでしょうか。<br/>(例えば、インストーラにキャッシュデータも含めておき配布するなど)<br/><br/>お手数をおかけいたしますが、よろしくお願いいたします。Wed, 13 Jan 2010 07:18:25 Z2010-02-10T05:36:04Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/0f86d5eb-f022-47e3-a580-da82250f6d35http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/0f86d5eb-f022-47e3-a580-da82250f6d35あららぎhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u3042%u3089%u3089%u304eVB6のVariant配列のデータを操作するには?VB6で作成されたActiveXライブラリから受け取った Variant配列データを<br/> C#2008で操作するにはどうしたらいいのでしょうか?<br/> ※今回使用しているActiveXは2次元配列で列ごとにDATE型、Double型、<br/> Long型などのデータが格納されているタイプです。<br/> <br/> Variant配列データの取得は下記でできているのは確認しました。<br/> ※Watchウィンドウでobj変数の配列データを確認しました<br/> System.Object obj = ActiveX名.プロパティ名;<br/> <br/> VB6やVB2005の場合は、下記のようにすれば配列データにアクセス出来ていたので<br/> obj(0,1)&nbsp;&nbsp; ・・・・ VB2005の場合<br/> 次の様にしてみましたが、Object型に[]はつけられないとエラーが出てしまいます。<br/> obj[0,1] &nbsp; ・・・・ C#2008の配列はこう?<br/> 当然ですが、VBと同じ様に()を使った場合は、Objectを関数みたいに使用するなと<br/> 怒られてしまいました。<br/> <br/> 申し訳ありませんが、どの様にアクセスすればいいのかわかる方が居られましたら<br/> 方法や参考資料のリンクなど、教えて頂けると助かります。<br/> <br/> 以上、申し訳ありませんが宜しくお願いします。<br/>Wed, 27 Jan 2010 09:19:19 Z2010-01-28T01:53:22Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/a2cbf7d2-a07d-4c79-9139-4d0c7c838bffhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/a2cbf7d2-a07d-4c79-9139-4d0c7c838bffzenkeihttp://social.msdn.microsoft.com/Profile/ja-JP/?user=zenkeiSocket.Receive メソッド (Byte[])で受信するサイズが送信側のアプリケーションで送信したサイズより小さくなる<p>SocketクラスのReceive(Byte[])メソッドを使用してLANの受信処理を行っています。<br/><br/>1)接続処理は以下のように非ブロッキングモードで行っています。<br/>socket = server.AcceptSocket();<br/>socket.Blocking = false;<br/><br/>2)受信バッファーは送信側のデータが必ずひとまとまりでとれるように大き目に設定しました。<br/>socket.ReceiveBufferSize = 4096 * 200;<br/>送受信するデータは1データ1送受信につき4096byteを超えないようにしています。<br/><br/>3)受信処理はAvilableメソッドを使用し、例外が発生しないようにしています。<br/>size = socket.Available;<br/>if (size &gt; 0)<br/>{<br/>    buffer = new byte[size];<br/>    socket.Receive(buffer);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...........&nbsp; = buffer[......<br/>}<br/><br/>質問:<br/>送信側のアプリケーションで4096byteのひとまとまりのデータを送った場合に<br/>受信側で1460byte等で一回切れて受信してしまうことが10回に1回程度発生<br/>してしまうようです。SocketクラスとLANカードのドライバ間の処理のように思え<br/>るのですが、どのようなしくみなのかよくわかりません。ユーザーとしてはまとま<br/>ったサイズで受信したいのですが。。。読みだすタイミングによるのでしょうか?<br/><br/><br/>よろしくお願いします。</p>Fri, 22 Jan 2010 12:45:06 Z2010-01-23T12:14:19Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/43c78248-8ed3-4c77-93a1-0ad81ad713dahttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/43c78248-8ed3-4c77-93a1-0ad81ad713da西脇http://social.msdn.microsoft.com/Profile/ja-JP/?user=%u897f%u8107メソッドが存在しないときに例外としたい<p>西脇です。</p> <p>またまた質問ですみませんが、皆様アドバイスをお願い致します。</p> <p>今作成中のアプリケーションフレームワークで、以下のようなコードがあります。</p> <p>&nbsp;</p> <p>using System;<br/>using System.Collections;<br/>using System.Reflection;</p> <p>namespace Sample<br/>{<br/>&nbsp;&nbsp;&nbsp; class BizEventManager<br/>&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Hashtable PassEvent(IBizEvent bizEvent, string methodName, Hashtable param)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type instanceType = bizEvent.GetType();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type[] paramTypes = new Type[1] { typeof(Hashtable) };<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MethodInfo methodInfo = instanceType.GetMethod(methodName, paramTypes);</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object[] parameters = new object[1] { param };<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (Hashtable)methodInfo.Invoke(bizEvent, parameters);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp; }<br/>}</p> <p><br/>開発時によく整合性のあっていないアプリケーションコードやファイルの配置ミスなどのために例外が発生します。</p> <p>具体的には bizEvent には medhodName で指定したメソッドが存在しない時、methodInfo.Invoke で例外が発生しますが、Assembly.GetType メソッドのように、instanceType.GetMethod の時点で例外となるような方法はありませんでしょうか?</p> <p>&nbsp;</p> <p>.NET Framework クラス ライブラリ<br/>Assembly.GetType メソッド (String, Boolean)<br/><a href="http://msdn.microsoft.com/ja-jp/library/19y21115.aspx">http://msdn.microsoft.com/ja-jp/library/19y21115.aspx</a></p> <p><br/>.NET Framework クラス ライブラリ<br/>Type.GetMethod メソッド (String, Type[])<br/><a href="http://msdn.microsoft.com/ja-jp/library/6hy0h0z1.aspx">http://msdn.microsoft.com/ja-jp/library/6hy0h0z1.aspx</a></p> <p>&nbsp;</p> <p>よろしくお願いします。</p>Fri, 08 Jan 2010 02:05:32 Z2010-01-22T03:05:30Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/b77ef9b3-91d2-4732-99c5-115747e0d378http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/b77ef9b3-91d2-4732-99c5-115747e0d378クサキhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u30af%u30b5%u30adDataGridView を使って単純な表を作りたい(後から値を設定したい)。<p>表には行、列のヘッダーがあり、各セルにはプログラムで計算した値をセットし、見る<br/>だけの単純なものを作りたいだけです。非バインド モードで良いのかと考えています。<br/><br/>初期化で、行のヘッダーの表記をするためのxxx.Rows[i].HeaderCell.Value = i.ToString();<br/>&nbsp;を実行する前にxxx.Rows.Add(row) により、各行が先に確保されていなければならない<br/>(後先が逆で違和感を感じています。どうでしょう?)ようですが、この時点では、<br/>まだ値が決まっておらず空白にしています。<br/><br/>初期化後のプログラムで値が確定してから各セルに値を表示させたいのですが、<br/>どのようにしたら良いのでしょうか?<br/><br/>選択もしたくないのですが、xxx.DefaultCellStyle.SelectionBackColor = Color.White;<br/>などで、見かけ上そうできるとのことですが、行のヘッダーに選択のための横向きの▲が<br/>残っているせいか、ヘッダーの幅が大きくなっています。<br/>選択そのものが出来ないようにした方が良いと思いますが、どのようにしたたら良いのでしょうか?<br/>または、行のヘッダーの幅を小さくするにはどうしたら良いでしょうか?<br/><br/>感想ですが、編集もしたくない、ソートもしたくない、選択もしたくない、<br/>ただ、単に表を作るだけが難しいいんですね。</p>Fri, 15 Jan 2010 06:19:09 Z2010-01-21T09:21:47Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/ec3dab89-13d2-453b-ae81-6029cf359ef7http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/ec3dab89-13d2-453b-ae81-6029cf359ef7三輪の牛http://social.msdn.microsoft.com/Profile/ja-JP/?user=%u4e09%u8f2a%u306e%u725b文字列書式設定(@)VB6では文字列書式設定で@を使うとパッディングを挿入したり、り文字の間にハイフンを入れたりと言ったことができたのですが<br/> これに相当する機能はNetframeworkにはあるでしょうか。Microsoft.VisualBasic、System.stringどちらもアットマークは使えませんでした<br/> <br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft.VisualBasic.Strings.Format(&quot;abc&quot;, &quot;@@@@@&quot;));<br/> <br/> &nbsp;Netframework 3.5 sp1&nbsp; C#<hr class="sig">http://www.mahoroba.ne.jp/~mw_kenThu, 21 Jan 2010 05:07:59 Z2010-01-22T03:38:44Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/4319547d-27ad-400e-bf3f-2b804de83294http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/4319547d-27ad-400e-bf3f-2b804de83294OTAKAhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=OTAKAapp.configについてお世話になります。<br/><br/>C#でスタンドアロン版のプログラムを作成予定なのですが、<br/>app.cinfigについて、全体像がよくわかりません。<br/><br/>・いつ・なに利用するのか(用途)<br/>・使用できる要素<br/>・どういうものを格納するのかの指針<br/>・アプリケーション既定値とマシン環境に依存する内容<br/>・ユーザーに単位の設定<br/>・.NetFrameworkのバージョン単位で取得方法が違う?<br/><br/>ネットからいろいろなサイトを参照してみたのですが、全体像が見えなくて設計ができません。<br/><br/>全体像(設計、プログラムに関すること)がまとめられている書籍やサイトがあるいいのですが。<br/>どういう風に聞くべきなのかわからないので、思っていることを吐き出してみたのですが・・・<br/>わかりにくかったらすみません。<br/><br/>教えてください。<br/><br/>Thu, 21 Jan 2010 05:02:05 Z2010-01-22T03:38:46Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/b30c25cf-114a-489d-bb82-ce1defdddecfhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/b30c25cf-114a-489d-bb82-ce1defdddecfユイカhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u30e6%u30a4%u30ab2つのbyte配列を1つに合わせたい<p>C#2008で開発しています。</p> <p>byte配列が2つあるのですが、<br/>それぞれのバイト配列を1つのバイト配列に合わせたいと思っています。</p> <p>たとえば次のような2つのバイト配列があったときに<br/>要素数5の新しいバイト配列cを作りたいということです。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] a = new byte[2];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[0] = 2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[1] = 3;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] b = new byte[3];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b[0] = 7;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b[1] = 6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b[2] = 5;</p> <p>バイト配列cの先頭にはバイト配列aの値が格納されて、<br/>バイト配列cの後方にはバイト配列bの値が格納されるようになってほしいです。</p> <p>次のようにプログラムすれば、格納できることは分かるのですが、<br/>もっとスマートにできないだろうか?<br/>と思っております。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte[] c = new byte[a.Length + b.Length];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (byte by in a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c[i] = by;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (byte by in b)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c[i] = by;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p> <p>何か方法がございましたら、教えて頂けませんか。<br/>ぜひよろしくお願いいたします。</p> <p>&nbsp;</p>Tue, 19 Jan 2010 12:56:18 Z2010-01-20T13:56:43Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/251b7ea7-b803-41d0-a62f-52e54388a666http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/251b7ea7-b803-41d0-a62f-52e54388a666buruburukoinuhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=buruburukoinuコントロールの描画のサスペンド・リフレッシュについてこんばんは。<br/><br/>現在、ListViewにデータを追加するアプリを作っているのですが、<br/>ListViewへ500件のデータを追加するのに30秒くらい掛かってしまっています。<br/><br/>ListViewにデータを追加すると、再描画がされるかと思うのですが、これを<br/>いったん抑制して、データの追加が終わったらリフレッシュするように<br/>したいのですが、どのようなメソッドを使えばよいのでしょうか?<br/><br/>※リフレッシュの仕方は分かったのですが、抑制の仕方が分かりません。<br/><br/><br/>よろしくお願いします。Tue, 05 Jan 2010 13:05:52 Z2010-01-20T08:21:10Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/7120cadd-eef2-486c-b449-644271532bbahttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/7120cadd-eef2-486c-b449-644271532bbaOrganoidhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=OrganoidNetServerEnumでドメイン指定できないC# VS2008 で開発しています。<br/> PCがActive Directoryのドメインに参加しており、ドメインに参加していないワークグループもエクスプローラで表示されている環境で、<br/> 2つのドメインに所属するPC名をすべて取得したいと思っています。<br/> ドメイン名はエクスプローラでMicrosoft Windows Networkを見た時<br/> MYDOMAIN<br/> WORKGROUP<br/> となっているものとします。<br/> <br/> このとき、NetServerEnum() 関数で、MYDOMAIN(自身のプライマリドメイン)は取得できるのですが、WORKGROUPが取得できません。<br/> ソースは次のように記述しております。<br/> <br/> <br/> IntPtr buf;<br/> uint entries;<br/> uint totalentries;<br/> uint resume = 0;<br/> NetApi32.NetServerEnum (null, 100, out buf, 4294967295, out entries, out totalentries, 0xFFFFFFFF, &quot;WORKGROUP&quot;, ref resume);<br/> <br/> <br/> 8番目の引数をnullにすると自身のドメインが取得できますが、&quot;MYDOMAIN&quot;では駄目なようでした。<br/> ドメイン名に問題があるのかとも思いましたが、同じくNetServerEnum関数を使って「ドメインのみ取得」すると、上記2つのドメイン名は取得できました。<br/> 書き方の問題だとは思うのですが、どこが間違っているかご示唆頂けないでしょうか?<br/> 宜しくお願いします。Tue, 19 Jan 2010 11:39:25 Z2010-01-20T03:41:19Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/194fe7e3-04d2-4603-a52a-0c3a598e6fbfhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/194fe7e3-04d2-4603-a52a-0c3a598e6fbfユイカhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u30e6%u30a4%u30ab呼び出し元システムのシステム名とバージョンを取得したい<p>C#2008でクラスライブラリの開発しています。</p> <p>呼び出し元のシステム(Exe)のシステム名と<br/>バージョンを取得したいと思っています。</p> <p>汎用的に作りたいと思いクラスライブラリを作っているのですが、<br/>どのようにプログラムしたら取得できるかが分からず<br/>質問させて頂きました。</p> <p>以下のようにプログラムしてみましたが、<br/>これではClassLibraly1と取得できるだけで、<br/>呼び出し元のシステム名は取得できませんでした。<br/>GetType().Assembly.GetName().Name</p> <p>どのようにプログラムしたら良いかが分かりましたら、<br/>教えて頂けませんか?<br/>よろしくお願いいたします。</p>Sat, 16 Jan 2010 12:03:20 Z2010-01-17T06:13:04Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/5ddeca0c-6ed4-4f84-aa6e-7e4e9597da62http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/5ddeca0c-6ed4-4f84-aa6e-7e4e9597da62いちろうhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u3044%u3061%u308d%u3046フォーム間でのコントロールのコピーについて現在、二つのフォームでコントロールをコピーすると言うことをやっているのですが、どうしてもMoveになってしまいます(オブジェクトである以上は参照渡しになってしまってるのでしょうか)<br/> フォーム1から、フォーム2にコントロールをコピーした後も、フォーム1上にコントロールを残す方法はないでしょうか<br/> <br/> 以下のサンプルで試しています<br/> <ul> <li>フォーム1上にはパネルがいくつかあり、その上に部品が色々乗っています</li> <li>フォーム2上は何もありません</li> <li>ボタン2をクリックすると、フォーム1からフォーム2にコントロールが転送され、</li> <li>ボタン3をクリックすると、フォーム2からフォーム1にコントロールを取り戻します</li> </ul> <br/> フォーム1<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Form2 f = new Form2();<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public Control[] GetAllControls(Control top) {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ArrayList buf = new ArrayList();<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; foreach (Control c in top.Controls) {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (c is Panel) {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; buf.Add(c);<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; buf.AddRange(GetAllControls(c));<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return (Control[])buf.ToArray(typeof(Control));<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> <br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; private void button2_Click(object sender, EventArgs e) {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; f.Show();<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Control[] all = GetAllControls(this);<br/> <br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; f.C_a = all;<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; f.SetControl2();<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> <br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; private void button1_Click(object sender, EventArgs e) {<br/> <br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> <br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; private void button3_Click(object sender, EventArgs e) {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Control[] a = f.C_a;<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; foreach (Control c in a) {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Controls.Add(c);<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> <br/> <br/> フォーム2<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; private Control[] g_c = new Control[100];<br/> <br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public Control[] C_a {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; set { g_c = value; }<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; get { return g_c; }<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> <br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void SetControl(Control c) {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Controls.Add(c);<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> <br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void SetControl2() {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; foreach (Control c in g_c) {<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Controls.Add(c);<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br/>Wed, 13 Jan 2010 01:53:11 Z2010-01-14T13:16:52Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/31e96345-a5db-4b27-a684-e37dd00efefbhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/31e96345-a5db-4b27-a684-e37dd00efefbtu_saitohttp://social.msdn.microsoft.com/Profile/ja-JP/?user=tu_saitoCrystalReportsでの印刷枚数についてWindowsアプリケーションにおいて、Crystal Reports で作成した帳票を、プログラムから PrintToPrinter で印刷する場合、<br/> 32767ページ以降が印刷されません。<br/> <br/> プログラムミスをしているのか、設定が誤っているのか、調べてみましたが分かりませんでした。<br/> ご教授いただけますようお願いします。<br/> <br/> 開発環境<br/> Windows VISTA<br/> Visual Studio2008 SP1<br/> Crystal Reports Basic for Visual Studio 2008<br/> C#<br/> <br/> 発生状況<br/> <ol> <li>データセットを定義し、「1~35,000」までの数字(integer)を入れたテーブルを作成する</li> <li>Crystal Reports を作成し、データベースとして上記で作成したデータセットを定義する</li> <li>レポートの「詳細」セクションに、列を貼り付け、「出力後に改ページ」にチェックする</li> <li>「ReportDocument」のインスタンスを生成し、LoadによりCrystal Reports ファイルを取り込む</li> <li>「SetDataSource」でデータセットをセットする</li> <li>「PrintToPrinter(1, false, 32767, 32769)」を実行する</li> </ol> 上記の結果、32767ページのみしか印刷されません。<br/> また「PrintToPrinter(1, false, 0, 0)」を実行した場合、32767ページまでしかプリンターにスプールされません。<br/>Wed, 13 Jan 2010 02:01:41 Z2010-01-13T09:28:03Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/daa0ea84-7680-495e-8c83-492039bca86ehttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/daa0ea84-7680-495e-8c83-492039bca86eリオhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u30ea%u30aaXML特殊文字の読み込み方法はどうしたら良いか?<p>C#2008で開発しています。</p> <p>XMLには「&amp;」や「&lt;」といった特殊文字が存在すると思います。<br/>XmlDocumentクラスを使用しているのですが、<br/>書きこむ際(Saveメソッド)には、それぞれ「&amp;amp;」、「&amp;lt;」などに変換して<br/>保存してくれています。</p> <p>XMLの読み込みの際には、<br/>XmlReaderクラスを生成して、XmlDocumentクラスのLoadメソッドで<br/>読み込みを行っています。</p> <p>この読み込みの際に、XML特殊文字がそのまま読み込まれるのですが、<br/>これはどうにかならないでしょうか?<br/>「&amp;amp;」を「&amp;」に置き換えて読んでほしいということです。<br/>使用する際に、それぞれの文字列をStringクラスのReplaceメソッドを利用して、<br/>置き換えても良いのですが、もっとスマートな方法はないものだろうか?<br/>と思っております。</p> <p>もしご存知でしたら教えて頂けませんか?<br/>ぜひよろしくお願いいたします。</p>Wed, 13 Jan 2010 02:54:49 Z2010-01-13T05:24:56Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/765f7094-5650-4560-a02d-d8e13d2e49f9http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/765f7094-5650-4560-a02d-d8e13d2e49f9TAKAKUNhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=TAKAKUNSHGetDesktopFolder<p>お世話になっております。<br/><br/>C#にてMDIのアプリケーションを構築し、Drag&Drop対応を行いました。<br/>WEBDAVフォルダのファイルを取得するのに、&nbsp;&nbsp;<br/>System.IO.MemoryStream stream = (System.IO.MemoryStream)e.Data.GetData(&quot;Shell IDList Array&quot;);<br/>をおこなってデータの取得ができるところまで組み込めたのですが、データの解析ができず行き詰りました。<br/><br/>LPITEMIDLISTからファイルパスに変換するのに、C++では、SHGetDesktopFolder APIを使っていたので<br/>クラスに、PInvokeから取得した、コードを実装したのですが、ここからどうしたらよいのか分からなくなりました。。。<br/><br/>[DllImport(&quot;shell32.dll&quot;)]<br/>static extern int SHGetDesktopFolder(ref IShellFolder ppshf);<br/><br/>使い方を教えていただけませんでしょうか。</p>Tue, 22 Dec 2009 07:39:53 Z2010-01-12T14:10:12Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/1d0410df-5da3-4ed4-8199-ae2629197d15http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/1d0410df-5da3-4ed4-8199-ae2629197d15mokosanhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=mokosanExcelに横棒グラフを表示させたいのですが...こんにちは<br/>VS2008+Excel2007で、ワークシートに横棒グラフを表示させたいと考えています。<br/>オートシェープや図の表示はできるようになったのですが、グラフ表示の方法がわかりません。<br/>Microsoft.Office.Interop.Excel名前空間のヘルプやフォーラムなども調べましたが、うまくいきません。<br/>抽象的な質問で恐縮ですが、どなたかグラフ表示方法を教えていただけないでしょうか。<br/>よろしくお願いいたします。Tue, 12 Jan 2010 01:55:53 Z2010-01-12T09:41:55Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/590463a5-fda0-434f-b616-d3ef0fcbd2cehttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/590463a5-fda0-434f-b616-d3ef0fcbd2cekeel_lawhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=keel_lawシリアルポートの再接続でやらなければならないことはありますか?C#でRS-232Cによるシリアル通信プログラムを作成しているのですが、<br/>一度シリアル通信の接続をしてから、一旦通信を切断して再接続を行おうとすると<br/>必ずUnauthorizedAccessExceptionが出ます。<br/>しかもポートへのアクセスが拒否されているはずなのに接続されています。<br/><br/>切断は以下のソースでやっています。<br/><br/>serialPort1.DtrEnable = false;<br/>serialPort1.RtsEnable = false;<br/>serialPort1.Close();<br/>serialPort1.Dispose();<br/><br/>これら以外に必要な処理はあるのでしょうか?<br/><br/>ちなみにやりたいことは以下の2点です。<br/>・同ソフトでシリアル通信の再接続を行えること。<br/>・別のターミナルソフト(TeraTerm等)で接続している状態で同ソフトで接続を行い、<br/>一度エラーになってから別のターミナルソフトを切断し、再度同ソフトで接続したときにエラーなく接続が行えること。<br/><br/>よろしくお願い致します。Thu, 07 Jan 2010 03:20:58 Z2010-01-12T07:55:16Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/0a028a5a-9a0e-4e49-b246-ba98629d12a3http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/0a028a5a-9a0e-4e49-b246-ba98629d12a3yasheekihttp://social.msdn.microsoft.com/Profile/ja-JP/?user=yasheeki年賀状の宛名書きに活用できるフォーマット年賀状の印刷に手こずっています。<br/>年賀状の宛名書きによく、C#を利用して活用できるフォーマットがないかと探していますが、なかなか見つかりません。<br/>なお、今のところ、MS Word の年賀状のフォームは、C#を利用して印刷するには難しすぎて手に負えません。<br/>データベースはSQL Server なのですが、このデータを印刷用のフォームに移行したうえで、順次印刷処理をしていきたいと思っています。<br/><br/>利用できるものとしてどんなものがあるか、教えてください。<br/>どうぞ、よろしくお願いします。Sun, 03 Jan 2010 15:08:49 Z2010-01-11T13:48:25Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/46e6e5a6-b52f-4c34-b0fc-454af481ec74http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/46e6e5a6-b52f-4c34-b0fc-454af481ec74yasheekihttp://social.msdn.microsoft.com/Profile/ja-JP/?user=yasheekiSQLServer データベースにあるテーブルの一覧を取得する<p>タイトル通り、SQLServer データベースにあるテーブルの一覧を取得する方法が分かりません。<br/>使用しているのは、VS 2008, SQL Server 2005 Express です。<br/>どうぞ、よろしくご教授お願いいたします。</p>Mon, 11 Jan 2010 04:16:51 Z2010-01-11T07:01:36Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/f18fed81-6a3e-43ba-97a3-a178a9bdf144http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/f18fed81-6a3e-43ba-97a3-a178a9bdf144GunParadehttp://social.msdn.microsoft.com/Profile/ja-JP/?user=GunParade拡張子毎に違うプリンタドライバを指定した印刷方法<p>ファイルの拡張子毎に、異なるプリンタドライバで印刷をかけたいのですが、プリンタドライバの指定が実現できません。<br/>(.docなら プリンタドライバ1、.xlsならプリンタドライバ2のように)<br/><br/>現在は<br/>Process p = new Process();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.StartInfo.FileName = ファイル名;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.StartInfo.Verb = &quot;print&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.StartInfo.CreateNoWindow = true;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.StartInfo.Arguments = &quot;プリンタドライバ名&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.StartInfo.UseShellExecute = true;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p.Start();<br/><br/>この様にコーディングすることで、印刷まではできています。<br/>プリンタドライバ名を変更しても、プリンタドライバが変更されておりませんでした。<br/><br/>実現方法について、教えて頂けませんでしょうか。<br/>宜しくお願いします。</p>Fri, 25 Dec 2009 18:18:20 Z2010-01-11T13:57:29Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/3b31c55f-9bef-4d51-823d-477236f95570http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/3b31c55f-9bef-4d51-823d-477236f95570高橋 春樹http://social.msdn.microsoft.com/Profile/ja-JP/?user=%u9ad8%u6a4b%u3000%u6625%u6a39投稿した質問が見つからないときは?<p>当フォーラムでは、投稿された内容が、カテゴリがあっていないと判断した場合、より回答を得やすいと思われるカテゴリに質問を移動させて頂く場合があります。<br/>投稿したはずの質問が見つからなくなった時は、ログインした後に右側のメニューから&quot;マイスレッド&quot;ページを参照してください。</p> <p>マイスレッド活用法 --- 投稿した質問が見つからないときは?<br/><a href="http://social.answers.microsoft.com/Forums/ja-JP/vistaappearanceja/thread/82f205fb-1a46-4c08-9807-b04110679e82">http://social.answers.microsoft.com/Forums/ja-JP/vistaappearanceja/thread/82f205fb-1a46-4c08-9807-b04110679e82</a></p> <hr> マイクロソフト株式会社 フォーラム オペレーター 高橋春樹Wed, 06 Jan 2010 01:21:14 Z2010-01-06T01:22:01Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/cf80189f-ee58-48be-874d-e0132114fe6fhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/cf80189f-ee58-48be-874d-e0132114fe6fyasheekihttp://social.msdn.microsoft.com/Profile/ja-JP/?user=yasheekiVBAのInputBox に相当するメソッドはありますか?タイトル通りの質問です。<br/>VBAのInputBox に相当するメソッドはあるのでしょうか?<br/>もしもなければ、同様の処理のできる方法を教えていただけないでしょうか?Sun, 03 Jan 2010 14:42:53 Z2010-01-03T23:47:26Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/c96196b2-d81d-4ef7-af91-c483837aacc2http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/c96196b2-d81d-4ef7-af91-c483837aacc2Myonhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=Myonリストボックス(ASP.NET)のZオーダーの制御<p>お世話になっております。環境:ASP.NET3.5 C# VS2008</p> <p><br/>以下のようにテキストボックス(HTML)とボタン(ASP)とリストボックス(ASP)を並べてみました。<br/>z-index:5000;とあるのでテキストボックスが最前面に出てくると思いました。<br/>ボタンは予想通りテキストボックスに隠れましたが、<br/>リストボックスはテキストボックスよりも前に出てきました。<br/>何故でしょうか。<br/>テキストボックスを最前面に出すにはどうすればよろしいでしょうか。</p> <p><br/>&lt;input value=&quot;abc&quot; style=&quot;left:10px; top:10px; position:absolute; z-index:5000;&quot; /&gt;&nbsp;<br/>&lt;asp:Button ID=&quot;Button1&quot; runat=&quot;server&quot; Text=&quot;Button&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&lt;asp:ListBox ID=&quot;ListBox1&quot; runat=&quot;server&quot; Width=&quot;79px&quot; Height=&quot;27px&quot;&gt;&lt;/asp:ListBox&gt;<br/></p>Sat, 02 Jan 2010 15:23:26 Z2010-01-03T16:04:59Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/c30492d5-018e-4690-a807-30a52103f965http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/c30492d5-018e-4690-a807-30a52103f965Myonhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=Myonダウンロードが完了したらすぐにファイルを消す<p>お世話になっております。ASP.NET3.5 C# VS2008</p> <p>ブラウザからファイルをダウンロードさせたいのですが、<br/>ダウンロードが完了したら直ぐにファイル消すということは可能でしょうか。<br/>以下のようにしてみると、<br/>Response.End();で処理を抜けてしまい、<br/>System.IO.File.Deleteまで通らないようです。<br/>もちろんEndとDeleteを逆にするとダウンロードできません。<br/>宜しくお願い致します。</p> <p>&nbsp;</p> <p>string path = &quot;---&quot;;<br/>string physicalPath = &quot;---&quot;;</p> <p>Response.ContentType = &quot;application/octet-stream&quot;;<br/>Response.AddHeader( &quot;Content-Disposition&quot;, &quot;attachment; filename=&quot; + path );<br/>Response.Flush();<br/>Response.WriteFile( path );<br/>Response.End();</p> <p>System.IO.File.Delete( physicalPath );</p>Thu, 24 Dec 2009 06:54:49 Z2009-12-28T14:13:52Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/d4926dc9-ee0d-49f2-a47b-aabad8bda39fhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/d4926dc9-ee0d-49f2-a47b-aabad8bda39fMyonhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=Myon複数のAjaxタイマーを貼り付けると一個しかTickしない<p>いつもお世話になっております。 環境:ASP.NET3.5 C#&nbsp;VS2008<br/><br/>複数のAjaxタイマーを貼り付けると一個しかTickイベントに飛んでこないのですが、<br/>何故でしょうか。<br/>MSDNには複数でも問題ないようなことが書かれているのですが。<br/><a href="http://msdn.microsoft.com/ja-jp/library/cc295201.aspx">http://msdn.microsoft.com/ja-jp/library/cc295201.aspx</a><br/><br/>UpdatePanel無しでタイマーむき出しなら2個ともTickするようですが、<br/>それではチカチカしてしまいます。<br/>宜しくお願い致します。<br/><br/><br/>&nbsp;&nbsp;&lt;asp:ScriptManager ID=&quot;ScriptManager1&quot; runat=&quot;server&quot;&gt;<br/>&nbsp;&nbsp;&lt;/asp:ScriptManager&gt;</p> <p>&nbsp;&nbsp;&nbsp; &nbsp;&lt;asp:UpdatePanel ID=&quot;UpdatePanel1&quot; runat=&quot;server&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&lt;ContentTemplate&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Timer ID=&quot;Timer1&quot; runat=&quot;server&quot; ontick=&quot;Timer1_Tick&quot; Interval=&quot;1000&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:Timer&gt;<br/>&nbsp;&nbsp;&nbsp;&lt;/ContentTemplate&gt;<br/>&nbsp;&nbsp;&lt;/asp:UpdatePanel&gt;</p> <p>&nbsp;&nbsp;&nbsp; &nbsp;&lt;asp:UpdatePanel ID=&quot;UpdatePanel2&quot; runat=&quot;server&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&lt;ContentTemplate&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;asp:Timer ID=&quot;Timer2&quot; runat=&quot;server&quot; ontick=&quot;Timer2_Tick&quot; Interval=&quot;1000&quot;&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/asp:Timer&gt;<br/>&nbsp;&nbsp;&nbsp;&lt;/ContentTemplate&gt;<br/>&nbsp;&nbsp;&lt;/asp:UpdatePanel&gt;<br/>&nbsp;</p>Mon, 28 Dec 2009 06:11:24 Z2009-12-28T23:16:41Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/79b89a77-5fb2-4116-9df0-ae40cee7ac78http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/79b89a77-5fb2-4116-9df0-ae40cee7ac78丸中太郎http://social.msdn.microsoft.com/Profile/ja-JP/?user=%u4e38%u4e2d%u592a%u90ceUSB IrDA と 携帯電話 で 赤外線通信<p>Visual C# 2005&nbsp; Windows Form アプリケーション です。<br/><br/>USB IrDA を 購入しまして、それと 携帯電話の赤外線 で 通信したいと思っています。<br/><br/>using System.Net;<br/><br/>using System.Net.Sockets;<br/><br/>を 追加して、参照の追加から System.Net.IrDA を 追加<br/><br/>C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE\System.Net.IrDA.dll<br/><br/>コンパクトフレームワーク2.0 に あります。<br/><br/>private void button1_Click(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IrDADeviceInfo[]&nbsp; irDevces;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IrDAClient&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; irClient&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; new IrDAClient ();</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; irDevces&nbsp; =&nbsp; irClient.DiscoverDevices(2);  <- ここで エラー になります。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(&nbsp; irDevces.ToString()&nbsp; );</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(&nbsp; &quot;END&quot;&nbsp; );</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/><br/>!InvalidProgramExceptionはハンドルされませんでした。<br/>共通言語ランタイムが無効なプログラムを検出しました。<br/><br/>と でてしまいます。<br/><br/><br/>Compact Framework を Form アプリケーションで 使うことはできないのでしょうか?<br/><br/>どなたか 教えてください。</p>Wed, 23 Dec 2009 00:44:05 Z2009-12-28T07:45:32Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/8e11307d-5374-4dbc-aea9-7f5c56838a7fhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/8e11307d-5374-4dbc-aea9-7f5c56838a7fTaka1919http://social.msdn.microsoft.com/Profile/ja-JP/?user=Taka1919スレッドが並列に処理されないTAKAといいます。教えてください。<br/>C#ビギナーで、はじめてスレッドを使ったプログラムを書いています。<br/><br/>WindowsFormでVC#2008を使っています。<br/><br/>PCでmp3の音楽を流しながら、PCにつながったモータを動かすということをやっています。mp3再生とモータを動かす部分を別スレッドにして動かしても並列に動かず、どちらかが終了してからもう一方が始まるという動作をしてしまいます。<br/><br/>以下コードです。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void button7_Click(object sender, EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread ThreadA = new Thread(new ThreadStart(worker2));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThreadA.Start();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; 3; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; runMortion(&quot;YURE.omf&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delegate void sayDelegate(string text);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void worker2()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TextSpeech mySpeech = new TextSpeech();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Invoke(new sayDelegate(mySpeech.mp3Play), new object[] { &quot;song3.mp3&quot; });<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/><br/><br/>runMortion(&quot;YURE.omf&quot;); を実行すると、PCにつながったモータがゆっくり行ったり来たりします。この関数の中でThread.Sleepを使っているのでそれが影響しているような気もしますが、スレッドを別にしているのでSleepしても影響は無い、という解釈で作りました。このメソッドを3回繰り返すと約30秒ほどの間ゆれるような動きになります。<br/>mySpeech.mp3Play(&quot;song3.mp3&quot;) でsong3.mp3が再生されます。この音楽は約30秒の長さにトリムしています。<br/>TextSpeechクラスはMP3ファイルを再生するもので、winmm.dllのmciSendStringを使っています。<br/><br/>期待していたのは「30秒間音楽が流れ、その間、モータが行ったりきたりゆれる」というものでしたが、実際に動作すると、まずモータが30秒間動いた後に、mp3が再生されてしまいます。<hr class="sig">Taka1919Fri, 25 Dec 2009 02:01:18 Z2009-12-28T00:53:04Zhttp://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/8f789622-468b-41d8-b723-dcdecae74796http://social.msdn.microsoft.com/Forums/ja-JP/csharpgeneralja/thread/8f789622-468b-41d8-b723-dcdecae74796トモディーhttp://social.msdn.microsoft.com/Profile/ja-JP/?user=%u30c8%u30e2%u30c7%u30a3%u30fcC#関数環境:<br/>windows XP(SP3)<br/>Visual Studio 2008(SP1)<br/>C#とADO.net を学習したいので、あるVB.net のサンプルをC#に変更<br/><br/>行いたいこと:<br/>関数の戻り値を取得したい<br/><br/><br/> <pre lang="x-c#">public struct structEmployee { public string employeecode; public string employeename; public string employeejapanese; public string postcode; public string updatetime; } protected void Page_Load(object sender, EventArgs e) { structEmployee[] syainInfo = null; string msg = null; int i = 0; string strOut = null; // //ここで戻り値を取得したい // msg = getSyainAll(syainInfo); if (string.IsNullOrEmpty(msg)) { //取得レコードの確認 for (i = 0; i &lt;= syainInfo.Length - 1; i++) { strOut = (i + 1).ToString() + &quot;件目==&gt;&quot;; strOut += &quot; 社員コード:&quot; + syainInfo[i].employeecode; strOut += &quot;, 社員氏名:&quot; + syainInfo[i].employeename; strOut += &quot;, 社員カナ:&quot; + syainInfo[i].employeejapanese; strOut += &quot;, 部門コード:&quot; + syainInfo[i].postcode; strOut += &quot;, 更新日時:&quot; + syainInfo[i].updatetime; //レコードの内容をコンソールに出力 //Trace.WriteLine(strOut); TextBox1.Text = msg; } } else { //レコードが取得できなかった時の処理 } } private string getSyainAll(ref structEmployee[] syainInfo) { SqlConnection oConn = new SqlConnection(); SqlCommand oCommand = new SqlCommand(); SqlDataReader oDataReader = default(SqlDataReader); int i = 0; try { oConn.ConnectionString = &quot;&quot;; oCommand.Connection = oConn; oCommand.CommandText = &quot;SELECT * FROM 社員テーブル&quot;; oConn.Open(); oDataReader = oCommand.ExecuteReader(); i = -1; while (oDataReader.Read()) { i = i + 1; Array.Resize(ref syainInfo, i + 1); syainInfo[i].employeecode = oDataReader[&quot;社員コード&quot;].ToString(); syainInfo[i].employeename = oDataReader[&quot;社員氏名&quot;].ToString(); if (oDataReader[&quot;社員カナ&quot;] == System.DBNull.Value) { syainInfo[i].employeejapanese = &quot;&quot;; } else { syainInfo[i].employeejapanese = oDataReader[&quot;社員カナ&quot;].ToString(); } syainInfo[i].postcode = oDataReader[&quot;部門コード&quot;].ToString(); syainInfo[i].updatetime = oDataReader[&quot;更新日時&quot;].ToString(); } if (syainInfo == null) { return &quot;社員テーブルにレコードがありません&quot;; } else { return &quot;&quot;; } } catch (Exception oExcept) { return oExcept.ToString(); } finally { if ((oDataReader != null)) { oDataReader.Close(); } if ((oConn != null)) { oConn.Close(); } } }</pre> <p><br/>コードの中の msg = getSyainAll(syainInfo); で、関数getSyainAllの戻り値を取得したいのですが、<br/>以下のエラーで怒られてしまいます。<br/><br/>エラー&nbsp;1&nbsp;'GetAllRecords.getSyainAll(ref GetAllRecords.structEmployee[])' <br/>に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。</p> <p>エラー&nbsp;2&nbsp;引数 '1' は 'ref' キーワードと共に渡されなければなりません。<br/><br/><br/>初歩的で申し訳ございませんが、戻り値を取得する方法を教えてください。<br/><br/><br/><br/></p><hr class="sig">tomotomodyWed, 23 Dec 2009 13:31:25 Z2009-12-26T09:12:46Z