<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>dev &gt;&gt; .NET &gt;&gt; Forms</title><link>http://blogs.wankuma.com/pinzolo/category/704.aspx</link><description>dev &gt;&gt; .NET &gt;&gt; Forms</description><managingEditor>THREE-ONE</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>THREE-ONE</dc:creator><title>作業ディレクトリの移り変わりにご用心</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/09/25/157487.aspx</link><pubDate>Thu, 25 Sep 2008 16:56:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/09/25/157487.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/157487.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/09/25/157487.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/157487.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/157487.aspx</trackback:ping><description>hoge.exe → 本体&lt;br /&gt;
hoge.dll → ライブラリ&lt;br /&gt;
hoge.mdb → 作業用データファイル（Access）&lt;br /&gt;
と同一ディレクトリに配置してある。&lt;br /&gt;
そして設定ファイルには &amp;lt;add name="data_file" value="hoge.mdb" /&amp;gt; という設定がある。&lt;br /&gt;
ログインや通常の処理は問題ないのだが、ある処理のときだけデータファイルが見つからないとういエラーが出る。&lt;br /&gt;
その処理はファイル保存処理で SaveFileDialog によって保存先を選ばせ、そこに保存するというよくある処理である。&lt;br /&gt;
要するに SaveFileDialog にて保存先を選んだら、作業ディレクトリが上書きされてしまうのを知らなかったわけです。&lt;br /&gt;
そのため、保存先ディレクトリに hoge.mdb がないぞーということになる。&lt;br /&gt;
その場では修正できないため、設定ファイルで絶対パスで指定してもらうことで切り抜けた。&lt;br /&gt;
アプリケーションが実行されたときに、絶対パスを作って保持しておくようにしとけばいいのかな。&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/157487.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>THREE-ONE</dc:creator><title>DataGridView で列名が長すぎてヘッダ内で折り返されちゃいました</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/09/05/155686.aspx</link><pubDate>Fri, 05 Sep 2008 15:59:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/09/05/155686.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/155686.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/09/05/155686.aspx#Feedback</comments><slash:comments>41</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/155686.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/155686.aspx</trackback:ping><description>掲題のような現象で困って、なんとか DataGridView.ColumnHeadersDefaultCellStyle.WrapMode を False にすればいい。&lt;br /&gt;
で、これを列毎に設定するのはどうすればいいんだ？&lt;br /&gt;
列の編集で設定できる DefaultCellStyle プロパティは、DataGridView.DefaultCellStyle を上書きするもんだよね？&lt;br /&gt;
と思ってたら、デザイナではできないみたい。&lt;br /&gt;
コード上で、DataGridView.Columns[index].HeaderCell.Style.WrapMode を False にしてやるのか。&lt;br /&gt;
デザイナで HeaderCellStyle プロパティみたいなのをずっと探してたよ。&lt;br /&gt;
俺がわかってないだけなんだけど、DataGridView ややこしいなぁ&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/155686.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>THREE-ONE</dc:creator><title>DataGridViewButtonColumn(Cell) や DataGridViewLinkColumn(Cell) には CausesValidation はないのね・・・</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/07/23/149811.aspx</link><pubDate>Wed, 23 Jul 2008 00:17:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/07/23/149811.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/149811.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/07/23/149811.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/149811.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/149811.aspx</trackback:ping><description>今 Win アプリなお仕事してるんですが、Web 版とそろえるために DataGridView の最初の二列にリンクをくっつけてます。&lt;br/&gt;
"削除"リンクと"編集"リンクがあって"編集"リンクをクリックすると列を編集可能状態にして、"更新"リンクと"キャンセル"リンクにする ASP.NET ではよくあるやつです。&lt;br/&gt;
んでセルの値は複合キーの DB 存在チェックとかじゃないような、単純なチェック（未入力とかフォーマットとか）は CellValidating でやろうと思ったんですが問題が多々。&lt;br/&gt;
セルの値を不正な値のままにして"キャンセル"リンク押しても CellValidating が走る。&lt;br/&gt;
API みたけど CausesValidation ないんですね&lt;br/&gt;
CellContentClick は CellValidating の後に発生するので意味なし。&lt;br/&gt;
DataGridView.CurrentCell も編集中のセルのままなのでリンククリックが判別できず。&lt;br/&gt;
あと、DataGridView 外の Button は CausesValidation 関係なく、CellValidating は走らない。&lt;br/&gt;
なんか方法あるんでしょうか？&lt;br/&gt;
とりあえずおとなしく、更新リンククリック時に全部チェックするようにします&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/149811.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>THREE-ONE</dc:creator><title>DataGridView の DataBindingComplete イベントの発生回数</title><link>http://blogs.wankuma.com/pinzolo/archive/2008/07/17/149298.aspx</link><pubDate>Thu, 17 Jul 2008 10:49:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2008/07/17/149298.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/149298.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2008/07/17/149298.aspx#Feedback</comments><slash:comments>124</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/149298.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/149298.aspx</trackback:ping><description>コード内で DataSource と DataMember の設定を行うとして、DataSource → DataMember の順で設定すると、DataBindingComplete イベントは三回発生する。&lt;br/&gt;
これを DataMember → DataSource の順で設定すると一回のみ発生する。&lt;br/&gt;
基本的に一回しか発生させたくないため、設定順序に注意。&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/149298.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>THREE-ONE</dc:creator><title>ダイアログの親フォームを操作可能にする</title><link>http://blogs.wankuma.com/pinzolo/archive/2006/11/21/46479.aspx</link><pubDate>Tue, 21 Nov 2006 20:54:00 GMT</pubDate><guid>http://blogs.wankuma.com/pinzolo/archive/2006/11/21/46479.aspx</guid><wfw:comment>http://blogs.wankuma.com/pinzolo/comments/46479.aspx</wfw:comment><comments>http://blogs.wankuma.com/pinzolo/archive/2006/11/21/46479.aspx#Feedback</comments><slash:comments>89</slash:comments><wfw:commentRss>http://blogs.wankuma.com/pinzolo/comments/commentRss/46479.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/pinzolo/services/trackbacks/46479.aspx</trackback:ping><description>ここに ParentForm と ChildForm の二つの Form があります。&lt;BR&gt;&lt;BR&gt;ParentForm と ChildForm にはそれぞれ Button が 1 つずつあります。&lt;BR&gt;ParentForm の Button には、&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
    ChildForm child = &lt;span class="kwrd"&gt;new&lt;/span&gt; ChildForm();
    child.ShowDialog(&lt;span class="kwrd"&gt;this&lt;/span&gt;);
}&lt;/pre&gt;ChildForm の Button には、&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Button_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)
{
    &lt;span class="kwrd"&gt;base&lt;/span&gt;.Owner.Enabled = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
    &lt;span class="kwrd"&gt;base&lt;/span&gt;.Owner.Enabled = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
}&lt;/pre&gt;がそれぞれ定義してあります。&lt;BR&gt;&lt;BR&gt;ParentForm の Button を押すと、ChildForm がダイアログとして表示されます。&lt;BR&gt;ダイアログですので、当然 ParentForm は操作不可能になります。&lt;BR&gt;しかし、ChildForm の Button を押すと ParentForm が操作可能になります。&lt;BR&gt;これは Enabled を true にするだけでは起こらず、false から true へと変化させることで起こります。&lt;BR&gt;ちなみに .NET2.0 で作っても、Vista で動かしても同じ動きになるはず。&lt;BR&gt;試したとき Vista はまだ RC だか β だかでしたが・・・&lt;BR&gt;&lt;BR&gt;C++ で MFC とか VB をやったことがないので、これが正常な動作かわかりません。（勉強しないと；）&lt;BR&gt;以前、特殊な要件を満たすためにこれを利用したんですが、バグ利用な気がして今でも後味がよろしくありません。&lt;img src ="http://blogs.wankuma.com/pinzolo/aggbug/46479.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>