DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomal参照dllへの文字列引数をutf8で渡したい。(13) | NomalFILE.COPYでIOExceptionエラーが出る(11) | Nomalリストを別フォームに渡す方法(9) | Nomal例外発生した場合に変数をcatchに渡したい(9) | NomalCode128でバーコードが読み取れない(8) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | Nomal数字だけで構成されてるCSVフィールドが自動的に数値として解釈される(7) | NomalフォームコントロールへのDataBindingsでプロパティが相互反映されない(7) | Nomal起動ディスプレイの指定方法について(6) | NomalListBoxにデータが表示されない(6) | Nomal文字列を8bit に戻してから UTF-8 に変換する方法(6) | NomalSQLServerテーブル内容をDataGridViewに表示するコードについて(6) | Nomal文字列構造体のListのソート(6) | NomalWebBrowser Controlを使って、任意の値を取得(5) | Nomalこんな演算子初めて見ました。(5) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | Nomalポルトガル語の登録(5) | Nomaloo4oのAddTableをADOに移行したい(5) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | Nomalフォルダ内の全ての容量を取得したい(4) | Nomal共変性と反変性ってこういうこと?(4) | Nomalプロセスからウインドウを取得(4) | NomalNewの使い方間違ってますか?(4) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalJOIN操作の構文エラー(4) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | Nomalスクロールバーが出た時に高さを変えたい(4) | NomalDatagridViewの行高さ変更について(4) | NomalLINQのメソッド構文の書き方(3) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalPictureBox.Locationのキャンセル(3) | NomalCatch時のex.StackTraceの情報(3) | NomalVisualStudioでマクロ(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalDrawImage でメモリ不足エラー(3) | NomalVb.netからAccessへの接続について(3) | Nomal令和の日付への対応(3) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | NomalPIctureBox同士を論理合成したい(3) | Nomalデータセット定義ファイルからDataTable(3) | Nomalネットの画像の複数枚を重ね合わせたい(3) | NomalDataGridViewで検索をかける方法(3) | NomalDataGridViewの選択時の色を透明にしたい(3) | NomalWebBrowserでWebページからのメッセージ(3) | NomalASP.NETから呼ばれているかどうか判定する方法(3) | NomalCA2213の警告が消えません(3) | NomalC# 現在のコンテキスト内にxxxという文字は存在しませんと出ます(3) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalWebBrowser Control foreachで値が消える(2) | NomalEditボックスに簡体字をセットする方法(2) | NomalWebClientが上手く動かない(2) | Nomalフォーム外のカーソルの変更(2) | Nomalラムダ式の勉強中(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalC#をVBに変換(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalVC++ → VB.Netに変換時に文法エラー(2) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal自作したアプリの発行元を明記したい(2) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalDataGridView 行の背景色の設定(2) | NomalDatagridviewのクリア(2) | NomalnumericUpDwonコントロールのvalue(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDataTableの構造が同じか調べるメソッド(2) | NomalRejectChangesについて(2) | NomalPC機種によってスタートアップ画面が中央から左上にずれる、Fontがおかしくなる。(2) | Nomalタスクスケジュール登録時の例外メッセージ(2) | Nomal管理者モードでクリック(2) | NomalVB2017でのインストーラ作成時のエラーについて(2) | NomalMicrosoft Azure OCRのサンプルコード実行時エラー(2) | Nomalデータバインド時のDataGridViewのカスタムソート(2) | NomalObject型からDecimalへの変換(2) | Nomal擬似言語をVBのプログラミングに変換(2) | Nomalユーザーコントロールのプロパティが保存されない(2) | NomalWindows10(1803)からGetHostEntryでipv4が取得出来ない場合がある(2) | Nomal自分自身を呼び出すのはOKですか(1) | NomalList型でエラーが起きてしまい・・・(1) | NomalLINQの拡張メソッドの定義(1) | NomalWebRequest でメモリが解放されない(1) | NomalFunction プロシージャからの文字選択(1) | NomalRDP接続でのネットワーク帯域制限(0) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalWinFormsでWindows10のカメラアプリと連携したい(0) |



■記事リスト / ▼下のスレッド
■34205 / 親記事)  HTTP 417エラーを発生させるためのIIS設定はどうすればよいか
□投稿者/ ぺんたごん 一般人(31回)-(2019/04/02(Tue) 13:26:50)
  • アイコン環境/言語:[IIS 7.5] 
    分類:[ASP.NET] 

    こんにちは。

    今回、ASP.NET WebAPI製のRESTに対し
    .NET製アプリからPOSTするプログラムを書いています。

    ある特定の客先環境でだけ417エラーが発生するため
    社内で検証するために同じエラーが出る状況を作りたいのですが、
    IISか何かをどのように設定すればよいのか
    皆目検討が付きません。

    ググってもクライアント側の対処法しか出てこず、
    それを検証するためにあえてエラーが発生する状態を
    作ろうとする人がいないようで…

    IISの要求フィルタのヘッダーあたりかなと思いましたが、
    Expectヘッダをサイズ制限1で追加したらなぜか404になってしまい、
    クライアント側がExpect100Continue=falseしても通らなくなってしまいました。

    どうか何卒お助けください…
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34206 / ResNo.1)  Re[1]: HTTP 417エラーを発生させるためのIIS設定はどうすればよいか
□投稿者/ shu 大御所(486回)-(2019/04/02(Tue) 14:51:11)
  • アイコンNo34205に返信(ぺんたごんさんの記事)
    >
    > ある特定の客先環境でだけ417エラーが発生するため
    > 社内で検証するために同じエラーが出る状況を作りたいのですが、

    プロキシサーバー通っている場合に発生する可能性があります。
違反を報告
引用返信
■34209 / ResNo.2)  Re[2]: HTTP 417エラーを発生させるためのIIS設定はどうすればよいか
□投稿者/ ぺんたごん 一般人(32回)-(2019/04/02(Tue) 17:43:51)
  • アイコンNo34206に返信(shuさんの記事)
    > ■No34205に返信(ぺんたごんさんの記事)
    >>
    >>ある特定の客先環境でだけ417エラーが発生するため
    >>社内で検証するために同じエラーが出る状況を作りたいのですが、
    >
    > プロキシサーバー通っている場合に発生する可能性があります。

    ありがとうございます。
    Expectを受け付けないプロキシサーバを構築できないか
    いろいろ探ってみます。

    進展が有りましたらまた追記します。
違反を報告
引用返信
■34213 / ResNo.3)  Re[3]: HTTP 417エラーを発生させるためのIIS設定はどうすればよいか
□投稿者/ ぺんたごん 一般人(33回)-(2019/04/08(Mon) 20:08:32)
  • アイコンNo34209に返信(ぺんたごんさんの記事)
    > ■No34206に返信(shuさんの記事)
    >>■No34205に返信(ぺんたごんさんの記事)
    > >>
    > >>ある特定の客先環境でだけ417エラーが発生するため
    > >>社内で検証するために同じエラーが出る状況を作りたいのですが、
    >>
    >>プロキシサーバー通っている場合に発生する可能性があります。
    >
    > ありがとうございます。
    > Expectを受け付けないプロキシサーバを構築できないか
    > いろいろ探ってみます。
    >
    > 進展が有りましたらまた追記します。

    Squid 2.7 のWin用ビルド済バイナリを見つけて、
    無事 HTTP 417が発生するプロキシ環境を構築できました。
    新しいバージョンではExpectヘッダに対応しちゃっていたので
    あえて古いバージョンを探すのが大変でしたがなんとか見つけられました。

    ありがとうございました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34181 / 親記事)  DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい
□投稿者/ Iraquser 一般人(7回)-(2019/03/04(Mon) 17:25:37)
  • アイコン環境/言語:[Win10 c#] 
    分類:[.NET] 

    いつもお世話になっております。
    ピクチャーボックスに文字列を描画する処理で発生する現象の理由が知りたくて
    投稿させて頂きます。
    
    ピクチャーボックスにDrawStringメソッドで文字列を描画する際、描画先となる
    Imageオブジェクトを事前にFillRectangleメソッドにて塗りつぶした後に描画す
    るのと、塗りつぶしをせずに描画するのとで、描画される文字の太さが変わるの
    は何故なんでしょうか。
    
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    namespace Test01 {
        public partial class Form1 : Form {
            public Form1() {
                InitializeComponent();
            }
            private PictureBox p = new PictureBox();
            private void Form1_Load(object sender, EventArgs e) {
                this.Size = new Size(300, 200);
                p.Size = this.ClientSize;
                p.Location = new Point(0, 0);
                p.BackColor = Color.White;
                p.BorderStyle = BorderStyle.FixedSingle;
                p.MouseClick += new MouseEventHandler(p_MouseClick);
                this.Controls.Add(p);
            }
            private void p_MouseClick(object sender, MouseEventArgs e) {
                Bitmap c = new Bitmap(p.Width, p.Height);
                Graphics g = Graphics.FromImage(c);
                Font f = new Font("MS UI Gothic", 20);
                if (e.Button == MouseButtons.Left) {
                    g.FillRectangle(Brushes.White, g.VisibleClipBounds);
                    g.DrawString("左ボタンを押しました。", 
                                 f, Brushes.Black, new Point(20, 20));
                } else if (e.Button == MouseButtons.Right) {
                    g.DrawString("右ボタンを押しました。", 
                                 f, Brushes.Black, new Point(20, 20));
                }
                g.Dispose();
                p.Image = c;
            }
        }
    }
    

592×201 => 250×84
イメージ
1551687937.png
/5KB
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34182 / ResNo.1)  Re[1]: DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい
□投稿者/ 魔界の仮面弁士 大御所(1214回)-(2019/03/04(Mon) 18:27:55)
  • アイコンNo34181に返信(Iraquserさんの記事)
    > ピクチャーボックスにDrawStringメソッドで文字列を描画する際、描画先となる
    > Imageオブジェクトを事前にFillRectangleメソッドにて塗りつぶした後に描画す
    > るのと、塗りつぶしをせずに描画するのとで、描画される文字の太さが変わるの
    > は何故なんでしょうか。

    g.DrawString を呼ぶ前に、g.TextRenderingHint に
    SystemDefault(=0) 以外の値をセットしてみてください。
違反を報告
引用返信
■34183 / ResNo.2)  Re[1]: DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい
□投稿者/ 魔界の仮面弁士 大御所(1215回)-(2019/03/05(Tue) 07:22:16)
  • アイコンNo34181に返信(Iraquserさんの記事)
    > 描画される文字の太さが変わるの
    > は何故なんでしょうか。

    OS の ClearType 設定にも依存します。

    http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=21802
違反を報告
引用返信
■34188 / ResNo.3)  Re[2]: DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい
□投稿者/ Iraquser 一般人(9回)-(2019/03/08(Fri) 07:37:31)
http://Win10 c#
  • アイコンNo34183に返信(魔界の仮面弁士さんの記事)
    魔界の仮面弁士さん、いつもお世話になっています。
    お礼の返信が遅れてしまい申し訳ありません。返信した積りだったんですが、)投稿されてませんでした(私の操作ミスと思います)。
    TextRenderingHint、対応して思い通りの結果が得られる事を確認しました。
    ClearTypeに関しては、開発環境を触る事は少々難しいんで、プライベートで試してみようと思っています。
    有難うございました。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34177 / 親記事)  PIctureBox同士を論理合成したい
□投稿者/ HIROPON 一般人(1回)-(2019/03/01(Fri) 22:07:14)
  • アイコン環境/言語:[Windows7 VB.NET2017] 
    分類:[.NET] 

    お世話になります。

    VB.NET 2017において、Picturebox同士の画像を論理合成したいのです。
    PictureBox1 = PictureBox1 AND PictureBox2
    みたいな感じです。
    ピクセル1個つづ読み取ってANDして描画してみましたが、速度的に使い物になりませんでした。
    ネットで調べてみましたが、透明色を設定して合成というのはありましたが、色には関係なく全面的に論理処理を行いたいのです。

    よろしくおねがいします。
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34179 / ResNo.1)  Re[1]: PIctureBox同士を論理合成したい
□投稿者/ 魔界の仮面弁士 大御所(1213回)-(2019/03/01(Fri) 22:14:09)
  • アイコンNo34177に返信(HIROPONさんの記事)
    > ピクセル1個つづ読み取ってANDして描画してみましたが、速度的に使い物になりませんでした。
    Bitmap.GetPixel / SetPixel メソッドでの書き換えは低速なので、
    大量のピクセルの色を変更する場合は、Bitmap.LockBits メソッドで得た
    BitmapData の Scan0 プロパティに対して読み書きするのが常套手段です。
    https://dobon.net/vb/dotnet/graphics/colorbalance.html#lockbits
    https://dobon.net/vb/dotnet/graphics/drawnegativeimage.html#lockbits
違反を報告
引用返信
■34180 / ResNo.2)  Re[2]: PIctureBox同士を論理合成したい
□投稿者/ HIROPON 一般人(2回)-(2019/03/02(Sat) 18:48:03)
  • アイコンご提示のサンプルを元に以下のようなメソッドを作ってみました。
    ------------------------------------------------------------
    Public Sub AddCopy(ByVal Srcimg As Bitmap, ByVal Desimg As Bitmap)

    '1ピクセルあたりのバイト数を取得する
    Dim SrcpixelFormat As PixelFormat = Srcimg.PixelFormat
    Dim SrcpixelSize As Integer = Image.GetPixelFormatSize(SrcpixelFormat) / 8
    If SrcpixelSize < 3 OrElse 4 < SrcpixelSize Then
    Throw New ArgumentException(
    "1ピクセルあたり24または32ビットの形式のイメージのみ有効です。",
    "Srcimg")
    End If

    Dim DespixelFormat As PixelFormat = Desimg.PixelFormat
    Dim DespixelSize As Integer = Image.GetPixelFormatSize(DespixelFormat) / 8
    If DespixelSize < 3 OrElse 4 < DespixelSize Then
    Throw New ArgumentException(
    "1ピクセルあたり24または32ビットの形式のイメージのみ有効です。",
    "Desimg")
    End If

    'Bitmapをロックする
    Dim SrcbmpDate As BitmapData =
    Srcimg.LockBits(New Rectangle(0, 0, Srcimg.Width, Srcimg.Height),
    ImageLockMode.ReadWrite, Srcimg.PixelFormat)

    If SrcbmpDate.Stride < 0 Then
    Srcimg.UnlockBits(SrcbmpDate)
    Throw New ArgumentException(
    "ボトムアップ形式のイメージには対応していません。",
    "Srcimg")
    End If

    Dim DesbmpDate As BitmapData =
    Desimg.LockBits(New Rectangle(0, 0, Desimg.Width, Desimg.Height),
    ImageLockMode.ReadWrite, Desimg.PixelFormat)

    If DesbmpDate.Stride < 0 Then
    Desimg.UnlockBits(DesbmpDate)
    Throw New ArgumentException(
    "ボトムアップ形式のイメージには対応していません。",
    "Desimg")
    End If

    'ピクセルデータをバイト型配列で取得する
    Dim Srcptr As IntPtr = SrcbmpDate.Scan0
    Dim Srcpixels As Byte() = New Byte(SrcbmpDate.Stride * Srcimg.Height - 1) {}
    System.Runtime.InteropServices.Marshal.Copy(Srcptr, Srcpixels, 0, Srcpixels.Length)

    Dim Desptr As IntPtr = DesbmpDate.Scan0
    Dim Despixels As Byte() = New Byte(DesbmpDate.Stride * Desimg.Height - 1) {}
    System.Runtime.InteropServices.Marshal.Copy(Desptr, Despixels, 0, Despixels.Length)

    'すべてのピクセルの色を補正する
    For y As Integer = 0 To SrcbmpDate.Height - 1
    For x As Integer = 0 To SrcbmpDate.Width - 1
    'ピクセルデータでのピクセル(x,y)の開始位置を計算する
    Dim Srcpos As Integer = y * SrcbmpDate.Stride + x * SrcpixelSize
    Dim Despos As Integer = y * DesbmpDate.Stride + x * DespixelSize

    '新しい色を計算する
    Dim SrcnewR As Integer = Srcpixels(Srcpos + 2)
    Dim SrcnewG As Integer = Srcpixels(Srcpos + 1)
    Dim SrcnewB As Integer = Srcpixels(Srcpos + 0)

    Dim DesnewR As Integer = Despixels(Despos + 2)
    Dim DesnewG As Integer = Despixels(Despos + 1)
    Dim DesnewB As Integer = Despixels(Despos + 0)

    Dim newR As Integer = SrcnewR And DesnewR
    Dim newG As Integer = SrcnewG And DesnewG
    Dim newB As Integer = SrcnewB And DesnewB

    '色を変更する
    Despixels(Srcpos + 2) = CByte(newR)
    Despixels(Srcpos + 1) = CByte(newG)
    Despixels(Srcpos) = CByte(newB)
    Next
    Next

    'ピクセルデータを元に戻す
    System.Runtime.InteropServices.Marshal.Copy(Despixels, 0, Desptr, Despixels.Length)

    'ロックを解除する
    Srcimg.UnlockBits(SrcbmpDate)
    Desimg.UnlockBits(DesbmpDate)

    End Sub
    ------------------------------------------------------------------------
    どうにか思い通りの結果が得られました。
    ありがとうございます。

違反を報告
引用返信
■34191 / ResNo.3)  Re[3]: PIctureBox同士を論理合成したい
□投稿者/ HIROPON 一般人(3回)-(2019/03/08(Fri) 22:32:56)
  • アイコン解決しました!
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34159 / 親記事)  データセット定義ファイルからDataTable
□投稿者/ ナンバー 一般人(2回)-(2019/02/25(Mon) 16:27:43)
  • アイコン環境/言語:[c# 6] 
    分類:[.NET] 

    データセット定義ファイル(xsdファイル)を利用して、DataTableを作成しました。

    参考にしたのは下記のサイトになります。
    https://www.ipentec.com/document/csharp-database-create-dataset

    できたのは下記のURLのようになります。
    https://mscdn.ipentec.com/document/image/csharp-database-create-dataset-05?maxwidth=1440

    MyDataSet.xsdファイルのSimpleProductというDataTableができました。
    ----
    ここからが知りたいことです。

    1.
    SimpleProductというDataTableをインスタンス化するには、このような方法をとりましたが
    あってるでしょうか?

    var dt = new DataTable();
    dt = MyDataSet.SimpleProduct();

    2.
    Form上のボタンを押すたびに、
    このDataTableに行を追加したいと思います。SimpleProductテーブルにはID(主キー)、ProductName、Priceと列情報があります。

    dt.Rows.Add(dt.NewRow()); // ←ここでエラー発生
    dt.[0]["id"] = "1";
    dt.[0]["ProductName"] = "A";
    dt.[0]["Price"] = "100";

    とすると、
    型 'System.Data.NoNullAllowedException' のハンドルされていない例外が System.Data.dll で発生しました

    追加情報:列 'id' に nulls を使用することはできません。

    というエラーメッセージが表示されます。idが主キーだからそのようにメッセージがでるのはわかる気がしますが、
    行を追加するにはどのようにすればいいでしょうか?

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34161 / ResNo.1)  Re[1]: データセット定義ファイルからDataTable
□投稿者/ 魔界の仮面弁士 大御所(1203回)-(2019/02/25(Mon) 17:15:40)
  • アイコンNo34159に返信(ナンバーさんの記事)
    > var dt = new DataTable();
    > dt = MyDataSet.SimpleProduct();

    dt への代入を 2 回行っているのは何故でしょうか?

    たとえば普段、
     string s = ""; // 1 回目の代入
     s = textBox1.Text; // 2 回目の代入
    と書くのではなく、
     string s = textBox1.Text; // 1 回目の代入
    と書きますよね。


    > 1.SimpleProductというDataTableをインスタンス化するには、このような方法をとりましたが
    > あってるでしょうか?

    そもそも『dt = MyDataSet.SimpleProduct();』だとコンパイルエラーになりませんでしたか?


    // 案1
    var ds = new MyDataSet();
    var dt = ds.SimpleProduct;

    // 案2
    var dt = new MyDataSet().SimpleProduct;

    // 案3
    var dt = new MyDataSet.SimpleProductDataTable();


    お奨めは 案1 ですが、どの方法でも構いません。
    ただし 案3 の方法だと、dt.DataSet が null になる点にご注意ください。


    上記の dt は System.Data.DataTable 型ではなく、それを継承した
    プロジェクトの名前空間.MyDataSet.SimpleProductDataTable 型である点が肝です。



    > 2.
    > Form上のボタンを押すたびに、
    > このDataTableに行を追加したいと思います。

    (1) MyDataSet.xsd を含むプロジェクトをコンパイルします。

    (2) フォームデザイナーを開くと、ツールボックス先頭に "MyDataSet" が現れるので、
     それを Form1 にドロップします。"myDataSet1" が貼られるはず。

    (3) button1_Click に以下を記述します。
    this.myDataSet1.SimpleProduct.AddSimpleProductRow("1", "A", 100);


    今回の場合、id 列が主キー設定されているようなので、
    同じ id を追加で登録しようとすると、キー重複で制約エラーになります。
    (ただし DataSet の EnforceConstraints を false にしていた場合は、制約エラーが無視されます)


    > dt.Rows.Add(dt.NewRow()); // ←ここでエラー発生
    > dt.[0]["id"] = "1";
    > dt.[0]["ProductName"] = "A";
    > dt.[0]["Price"] = "100";

    「dt.Rows.Add(dt.NewRow());」は実行時エラーで済みそうですが、
    その後の「dt.[0]」という構文は、そもそもコンパイルエラーになりませんか?


    それと、Price 列が 数値(int とか decimal とか)ではなく
    数字(string) な点も気にかかります。
    列のデータ型は、DataSet デザイナーで列を選択して、
    DataType プロパティから確認できますので、確認しておいてください。



    > 行を追加するにはどのようにすればいいでしょうか?

    【型付の DataTable に行を追加する場合】
    // 案1
    dt.AddSimpleProductRow("1", "A", 100);


    // 案2
    var newRow = dt.NewSimpleProductRow();
    newRow.id = "1";
    newRow.ProductName = "A";
    newRow.Price = 100;
    dt.AddSimpleProductRow(newRow);




    【素の DataTable に行を追加する場合】
    // 案1
    dt.Rows.Add("1", "A", 100);

    // 案2
    DataRow newRow = dt.NewRow();
    newRow["id"] = "1";
    newRow["ProductName"] = "A";
    newRow["Price"] = 100;
    dt.Rows.Add(newRow);
違反を報告
引用返信
■34162 / ResNo.2)  Re[2]: データセット定義ファイルからDataTable
□投稿者/ ナンバー 一般人(5回)-(2019/02/26(Tue) 14:10:24)
  • アイコン>そもそも『dt = MyDataSet.SimpleProduct();』だとコンパイルエラーになりませんでしたか?

    はい、コンパイルエラーになりませんでした。

    >上記の dt は System.Data.DataTable 型ではなく、それを継承した
    >プロジェクトの名前空間.MyDataSet.SimpleProductDataTable 型である点が肝です。

    なるほど、よく理解できました。

    >「dt.Rows.Add(dt.NewRow());」は実行時エラーで済みそうですが、
    >その後の「dt.[0]」という構文は、そもそもコンパイルエラーになりませんか?

    コンパイルエラーにはならず、実行時にエラーがでました。

    無事に疑問だったことが解決されました。ありがとうございます。
解決み!
違反を報告
引用返信
■34163 / ResNo.3)  Re[3]: データセット定義ファイルからDataTable
□投稿者/ 魔界の仮面弁士 大御所(1204回)-(2019/02/26(Tue) 16:41:17)
  • アイコンNo34162に返信(ナンバーさんの記事)
    > >そもそも『dt = MyDataSet.SimpleProduct();』だとコンパイルエラーになりませんでしたか?
    > はい、コンパイルエラーになりませんでした。

    それは妙ですね。

    「dt = new MyDataSet.SimpleProduct();」や
    「dt = myDataSet.SimpleProduct;」ならばまだしも、
    「dt = MyDataSet.SimpleProduct();」は、通常ならエラーになるはずなのですが。

    エラーにならなかったのであれば、MyDataSet.cs に対して、
    static な「SimpleProduct メソッド」を追加していたのかもしれません。


    > >「dt.Rows.Add(dt.NewRow());」は実行時エラーで済みそうですが、
    > >その後の「dt.[0]」という構文は、そもそもコンパイルエラーになりませんか?
    > コンパイルエラーにはならず、実行時にエラーがでました。

    「dt.[0]」でなく
    「dt[0]」だったということはないですか?

    「dt.[0]」な記述は、C# では構文エラー『識別子がありません』となるはずです。
    「dt[0]」や「dt.Rows[0]」という構文ならありえますが。


    もしくは、コンパイルに失敗した後の
    『ビルド エラーが発生しました。続行して、最後に成功したビルドを実行しますか?』
    の警告を無視して実行していたとか…。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▲上のスレッド
■34153 / 親記事)  ネットの画像の複数枚を重ね合わせたい
□投稿者/ そら 一般人(1回)-(2019/02/21(Thu) 18:19:05)
  • アイコン環境/言語:[環境(Windows 7 32bit)、使用言語(VB.NET)] 
    分類:[.NET] 

    サイト上にある.gif画像数枚をpictureboxに重ね合わせて表示したいです。
    http://www.*****.jp/Img/1.gif ←地図の画像
    http://www.*****.jp/Img/2.gif ←マーク

    このふたつの画像は同じサイズで、マークの画像のまわりは透明になっています。地図の上にマークを表示させたいです。何か方法はありますか?
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34154 / ResNo.1)  Re[1]: ネットの画像の複数枚を重ね合わせたい
□投稿者/ 魔界の仮面弁士 大御所(1200回)-(2019/02/21(Thu) 19:07:30)
  • アイコンNo34153に返信(そらさんの記事)
    > このふたつの画像は同じサイズで、マークの画像のまわりは透明になっています。

    PictureBox1.BackgroundImageLayout = ImageLayout.None
    PictureBox1.Load("http://www.*****.jp/Img/1.gif") '←地図の画像
    PictureBox1.BackgroundImage = PictureBox1.Image
    PictureBox1.Load("http://www.*****.jp/Img/2.gif") '←マーク
違反を報告
引用返信
■34155 / ResNo.2)  Re[2]: ネットの画像の複数枚を重ね合わせたい
□投稿者/ そら 一般人(2回)-(2019/02/22(Fri) 16:09:22)
  • アイコンNo34154に返信(魔界の仮面弁士さんの記事)

    こんにちは。回答ありがとうございます。魔界の仮面弁士さんのコードでは正しく実行できました。しかし、3枚以上の画像をこのように重ねようとすると
    PictureBox1.BackgroundImageLayout = ImageLayout.None
    PictureBox1.Load("http://www.*****.jp/Img/1.gif") '←地図の画像
    PictureBox1.BackgroundImage = PictureBox1.Image
    PictureBox1.Load("http://www.*****.jp/Img/2.gif") '←マーク
    PictureBox1.BackgroundImage = PictureBox1.Image
    PictureBox1.Load("http://www.*****.jp/Img/3.gif") '←マーク2つ目

    地図の画像が重ねられていなく、マークの画像2枚だけが重ねられてしまいます。
    この問題を解決するためにはどうすればいいのでしょうか?

違反を報告
引用返信
■34158 / ResNo.3)  Re[3]: ネットの画像の複数枚を重ね合わせたい
□投稿者/ 魔界の仮面弁士 大御所(1202回)-(2019/02/22(Fri) 19:04:34)
  • アイコンNo34155に返信(そらさんの記事)
    > 3枚以上の画像をこのように重ねようとすると

    (案1) PictureBox1.BackgroundImage に地図画像を割り当てて、
     Paint イベントにてマークを e.Graphics.DrawImage する。


    (案2) 画像サイズの Bitmap インスタンスを生成して Graphics.FromImage し、
     そこに地図やマークを DrawImage した後、その Bitmap インスタンスを
     PictureBox1.Image プロパティに割り当てる。


    描画処理については、ここの Tips 集などを参考に。
    https://dobon.net/vb/dotnet/graphics/index.html
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]






Mode/  Pass/


- Child Tree -