C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■8351  Re[2]: フォームの透明
□投稿者/ ポンチャン -(2006/11/17(Fri) 18:11:42)

    分類:[C#] 

    すいません。全然情報がたりませんでした。

    フォームのOpacityを0.1に設定。

    OnPaintメソッドをオーバーライドして下記の用に描画しています。

    protected override void OnPaint(PaintEventArgs pea)
    {
    Graphics grfx = pea.Graphics;
    Pen pen = new Pen(Color.FromArgb(255, 255, 0, 0), 1.5F);

    grfx.DrawLine(任意の値);

    }

    お手数おかけしますが宜しくお願い致します。
記事No.8349 のレス /0過去ログ8より / 関連記事表示
削除チェック/

■10665  Re[6]: プログラムの意見交換はいかがですか
□投稿者/ カンタービレ -(2007/11/23(Fri) 12:05:02)
    No10660 (れい さん) に返信
    > ------------------------------------------------
    > あるところに芋虫君がいました。何匹いるかはわかりません。
    > この芋虫君は、常に食べてないと死んでしまうかわいそうな芋虫です。
    > 足元には一見無限に広がるかのような、ハッパが広がっています。
    > 芋虫君は正方形をしている変わった芋虫です。(芋虫君の一辺を1イモムシとします。)
    > 芋虫君は、ハッパを食べながら移動していて、毎分1平方イモムシのハッパを食べ進まないと死んでしまいます。
    > 食べた後のハッパは、スジだらけで、食べられません。
    > 他の芋虫君が食べたハッパももちろん食べられません。
    > 芋虫君はあまり目が良くないので、自分を中心に前後3イモムシ分、7x7イモムシ分の世界しか見えません。
    > また、大変か弱い虫なので、ジャンプもできませんし、他の芋虫にぶつかったら死んでしまいます。
    >
    > このハッパの世界には何匹か芋虫がいます。
    > 途中で増えるかもしれません。
    > ハッパは再生するかもしれません。
    >
    > あなたは一匹の芋虫君です。
    > あなたの得られる毎分7x7イモムシ分の情報から、
    > なるべく長く生きるためのアルゴリズムを考えてください。
    > ------------------------------------------------
    >
    〜nnn(o・ω・) Σ(・Д・o)nnn〜
    全体の世界が無限に広いとぶつかる比率が低くて厳しいかもデスね。
    世界も行き止まりがあった方がよいと思いマス。
    迷路脱出に似てて面白いデス☆
記事No.10626 のレス /過去ログ24より / 関連記事表示
削除チェック/

■62512  Re[5]: 自分のインスタンスを保持しているオブジェクトを取得
□投稿者/ ぐっさん -(2011/10/16(Sun) 05:24:22)
    2011/10/16(Sun) 05:52:52 編集(投稿者)

    No62504 (ひらまる さん) に返信

    > よく「このクラスのインスタンスを保持しているオブジェクトを返す」のようなメソッドがあるので、

    これは、例えば何のクラスの何のメソッドでしょうか?

    また、子(被管理)クラスのコンストラクタに親(管理)クラスを渡したくない理由は何でしょうか?
    親クラスのインスタンスが唯一なのであれば、親クラスの全メンバをSharedにするとか、
    親クラスのインスタンスをPublicなスコープにして子クラスから参照可能にする、といった方法が考えられますが、
    これではコード上、親子関係が分かりにくくなるような気がします。

    他には、子側にイベントを用意して、親ではそのイベントハンドラで親側処理を実行する、という手もありますが、
    わざわざこんなことまでしなくとも、子のインスタンスを作成するときに親インスタンスを渡す方が簡単だと思うのですが。

    あと、子側で親インスタンスを取得したい理由は何でしょうか?
    今回の例の親クラスと子クラスとの役割が分かりませんので何とも言えませんが、
    親側のメソッドを呼び出すためだけに子側で親インスタンスを取得するのは、本当に正しい設計なのかどうか疑問を感じます。
    (親インスタンスのプロパティを参照したいので子側で親インスタンスを取得したいというのであれば理解できますが。)
記事No.62504 のレス /過去ログ105より / 関連記事表示
削除チェック/

■87102  Re[2]: datagridviewからxmlへの出力について
□投稿者/ kaz -(2018/04/11(Wed) 22:09:05)
    その後、色々試してみて
    まだ部分的に切り出した実験コードレベルですが
    質問で意図した動作はほぼ達成出来たと思われます
    
    ・型付データセットを作成
    ・必要な列を追加
    ・DefaultValueをString列はString.Empty、Boolean列はfalseに設定・・・(※1)
    ・スキーマを含めずWriteXmlで書き出す前に以下のようにDBNullを空文字やfalseに置換・・・(※2)
    
    
                for (int i = 0; i <= ds.Tables[0].Columns.Count - 1; i++)
                {
                    for (int j = 0; j <= ds.Tables[0].Rows.Count - 1; j++)
                    {
                        if (ds.Tables[0].Columns[i].DataType.ToString() == "System.String")
                        {
                            if (ds.Tables[0].Rows[j][i] == DBNull.Value)
                            {
                                ds.Tables[0].Rows[j][i] = String.Empty;
                            }
                        }
    
                        if (ds.Tables[0].Columns[i].DataType.ToString() == "System.Boolean")
                        {
                            if (ds.Tables[0].Rows[j][i] == DBNull.Value)
                            {
                                ds.Tables[0].Rows[j][i] = false;
                            }
                        }
                    }
                }
    
    
    
    この手順で、
    読み込むxmlに抜けた要素がある場合も
    DataGridViewを手書き/コードから編集、あるいは新規行を追加した場合も
    目的の動作になることを確認しました
    
    動作自体はうまくいったのですが
    少々疑問に思う所もありまして
    
    ※1は、コード中で以下のように初期値を設定しているのですが
    ds.Tables[0].Columns["Name"].DefaultValue = String.Empty;
    
    同じことを型付データセットを作るデザイナーのプロパティから
    設定する方法はあるのでしょうか?
    String.Empty,、<String.Empty>など試してみましたが
    空文字にならず、そのままString.Emptyや<String.Empty>という文字列がDataGridViewに表示されてしまいました
    コードから設定すれば済む事ですが、気になったので
    
    ※2は、
    列の型判定についてです
    最初、以下のコードで型判定できると思ったのですが
    if (ds.Tables[0].Columns[i].DataType is System.String)
    
    VisualStudioのエディターで緑波線がついて
    「式は指定された型’string’ではありません」
    とあり、実際に正しく判定されませんでした
    それで、ToString()でキャストした後、文字列として判定する方法に変更した所うまくいきました
    最初のコードがダメな理由がわかりません
    
    
    
    ■No87091 (WebSurfer さん) に返信
    > (1) SQL Server の Microsoft のサンプルデータベースの Northwind の Products テーブルか
    >   ら以下のクエリを使ってインラインスキーマ付きの xml を生成。
    
    すいません、この手順がわからないのですが
    これはVisualStudioで行う操作なのでしょうか?
    SQLは全く触ったことが無いもので・・・
    
記事No.87059 のレス /過去ログ149より / 関連記事表示
削除チェック/

■87104  Re[3]: datagridviewからxmlへの出力について
□投稿者/ WebSurfer -(2018/04/11(Wed) 22:38:33)
    No87102 (kaz さん) に返信

    > すいません、この手順がわからないのですが
    > これはVisualStudioで行う操作なのでしょうか?

    自分は SQL Server Management Studio を使いました。

    でも、ポイントはそこではなく、何で作ろうとスキーマと xml 本体がきちんとできていれば、上に書いたコード
    だけでチェックボックスは表示され、チェックの有無で xml の当該項目が true / false に書き換わるというこ
    とです。

    質問者さんが No87102 に書いたような DBNull で判定して false を代入する操作は必要はないです。


記事No.87059 のレス /過去ログ149より / 関連記事表示
削除チェック/

■87106  Re[4]: datagridviewからxmlへの出力について
□投稿者/ kaz -(2018/04/11(Wed) 23:36:01)
    No87104 (WebSurfer さん) に返信
    > でも、ポイントはそこではなく、何で作ろうとスキーマと xml 本体がきちんとできていれば、上に書いたコード
    > だけでチェックボックスは表示され、チェックの有無で xml の当該項目が true / false に書き換わるというこ
    > とです。
    >
    > 質問者さんが No87102 に書いたような DBNull で判定して false を代入する操作は必要はないです。

    「元のxmlがきちんと出来ている」
    この条件が大切だと思われます

    状況を整理すると
    xmlから読み込んだデータをDataGridViewに表示した際
    チェックボックスが未チェックになるのは2パターンあって
    【1】元のxmlで要素がfalseの時
    【2】元のxmlで要素が存在しない(DBNull)の時

    【1】であれば、当然書き出したxmlでも正しくfalseが存在する
    【2】のときは、書き出したxmlでも要素が欠けた状態になる
    というのが今の自分の理解です

    WebSurfer さんにご提示頂いたやり方で
    元のxmlファイルに欠けた要素がある(例えば、チェックボックスに対応する要素が存在せずDBNullである場合)でも
    書き出したxmlファイルでは、その要素はfalseとして存在しますでしょうか?

    自分が試した型付データセットを用いる方法だと
    元のxmlファイル中で欠けている要素は、それが文字列だろうとチェックボックスに対応する列だろうと
    書き出したxml中でも、要素が消えたままになります

    つまり、DBNullに相当する要素をxmlに書き出す(または、読み込むタイミングでもいいですが)ときに
    「その要素が属している列の型がStrringであれば空文字へ、Booleanであればfalseへ」の変換が必要であり
    その変換を誰がどこで行うのかという問題だと思います
    (ご提示頂いた方法だと、自動変換されるのかも?)

    更に、
    そもそも、欠けた要素の存在するxmlを元データとして認めるのかという問題があります
    最初に欠けた要素が存在しないxmlデータからスタートして
    追記する場合も、要素が欠ける事がないようにすれば(例えば、DefaultValueを適切に設定するとか)
    そもそも条件【2】に遭遇する事が無くなりますね
記事No.87059 のレス /過去ログ149より / 関連記事表示
削除チェック/

■87105  Re[3]: datagridviewからxmlへの出力について
□投稿者/ WebSurfer -(2018/04/11(Wed) 22:50:15)
    No87102 (kaz さん) に返信

    > SQLは全く触ったことが無いもので・・・

    何故 xml をデータソースに使っているのか分かりませんが、できれば多分 Visual Studio 2017 と一緒に
    インストールされているであろう SQL Server Local DB と Visual Studio のデータソース構成ウィザー
    ドを使って定番の構成のアプリを作ってみてはいかがでしょう?

    DB が SQL Server の場合ですが、以下のチュートリアル、

    チュートリアル : データベースへのデータの保存 (単一テーブル)
    https://msdn.microsoft.com/ja-jp/library/0f92s97z(v=vs.120).aspx

    10 行でズバリ !! 非接続型のデータ アクセス (ADO.NET) (C#)
    https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-cbfe7688

    ・・・のように Visual Studio のデータソース構成ウィザードを利用して型付 DataSet + TableAdapter
    を作って、それを利用してアプリを作ると、以下のページの図のような構造のアプリが、ほとんど自分で
    コードを書くこと無しに作れます。

    Windows フォーム アプリケーションでのデータへの接続
    https://msdn.microsoft.com/ja-jp/library/wxt2cwcc(v=vs.120).aspx

    操作に慣れると 10 分もかからず作れるはずです。

    SQL Server が使えれば今回のような問題に悩むことはなくなり、開発工数は激減するはずです。保守工数
    も減るはずです。お試しください。
記事No.87059 のレス /過去ログ149より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -