PROFILE
LINKS
SELECTED ENTRIES
CATEGORIES
ARCHIVES

01
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
タグふれんず

PBが行く!

歳のせいか記憶が・・・・
自分のための健忘録みたいなもですので
使用はご自由ですが、自己責任で・・・・・
どうか、参考程度にしてくださいね
もっと別の方法があれば是非教えてください!
エラー:制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。
0
     制約を有効にできませんでした。行に入力できるのは、
    Null 以外の値、一意な値、あるいは外部キーですが、
    この制約の違反が 1 つ以上の行で発生しています。

    この、エラーの通りに、、DBの制約?、Null値?、
    何か違反している文字があるのか?、
    外部キー?順番に見ていくわけですが、
    なんら、制約内でどれも違反してないけど・・・・・・・

    どうも、DataSetを使ってデータをDBから抜いてくるときに
    これが発生している模様です。

    Pointが元データーなのですが、
    Point1で抽出してセットするように作った時
    もともと『単元』のMaxLength8を
    途中で15に変更しました。

    その時Pointの方で変更したのですが
    Point1のほうを忘れて
    MaxLength8のままだったのが、引っ掛かったようです。


    しかし、この答えを、とてもじゃぁないが

     『制約を有効にできませんでした。行に入力できるのは、
    Null 以外の値、一意な値、あるいは外部キーですが、
    この制約の違反が 1 つ以上の行で発生しています。』

    で、導き出せますか?
    私は、丸1日悩みまくりましたとも・・・・・・








    | (VB2005・2008) | 11:20 | comments(0) | - | - | - |
    多角形・楕円・の線画
    0
      編物の製図をするプログラムを書いている

      ★四角形の線画



      'Penオブジェクトの作成(幅1の黒色)
      '(この場合はPenを作成せずに、Pens.Blackを使っても良い)
      Dim p As New Pen(Color.Black, 1)
      '(10,20,100,80)の長方形を描く
      g.DrawRectangle(p, 10, 20, 100, 80)
      'リソースを開放する
      p.Dispose()
      g.Dispose()


      ★多角形の線画

      '直線で接続する点の配列を作成
      Dim ps As Point() = {New Point(0, 0), New Point(150, 50), _
      New Point(80, 100), New Point(100, 150)}
      '折れ線を引く
      g.DrawPolygon(Pens.Black, ps)
      'リソースを開放する
      g.Dispose()

      ★楕円の線画
      楕円の位置と大きさは、外接する四角の位置と大きさで指定
      次の例では位置(10, 20)大きさ100x80の四角に外接する楕円を描画


      '位置(10, 20)に100x80の四角を赤色で描く
      g.DrawRectangle(Pens.Red, 10, 20, 100, 80)
      '先に描いた四角に外接する楕円を黒で描く
      g.DrawEllipse(Pens.Black, 10, 20, 100, 80)
      'リソースを開放する
      g.Dispose()

      楕円だけで、良い場合は、
      '位置(10, 20)に100x80の四角を赤色で描く
      g.DrawRectangle(Pens.Red, 10, 20, 100, 80)を記述しなければOK

      ★円弧の線画

      '位置(10, 20)に100x80の四角を赤色で描く
      g.DrawRectangle(Pens.Red, 10, 20, 100, 80)
      '先に描いた四角に外接する楕円の一部
      '(開始角度 0度、スイープ角度 90度)を黒で描く
      g.DrawArc(Pens.Black, 10, 20, 100, 80, 0, 90)
      'リソースを開放する
      g.Dispose()

      *出来上がりが1/4の円弧であっても
      頭の中では楕円をイメージしながら線画ポイントを考えていかなければ
      メビウスの輪に入ってしまう←私モゴモゴ

      円弧を扇に
      上記のDrawArcメソッドのコードの"DrawArc"を"DrawPie"に変更すればOK

      A側に線画したい時は
      g.DrawArc(Pens.Black, 10, 20, 100, 80, 90, 90)


      | (VB2005・2008) | 16:02 | comments(0) | - | - | - |
      最背面*最前面へ移動
      0
        Button1.SendToBack()
        コントロールを最背面へ移動

        Button1.BringToFront()
        コントロールを最前面へ移動
        | (VB2005・2008) | 13:52 | comments(0) | - | - | - |
        文字列の一部を抜き出す★2
        0
          1.左から何文字か抜き出す

           MsgBox(Strings.Left("いろはにほへと", 3)) 

             この例では "いろは" と表示される。


           MsgBox("いろはにほへと".Substring(0, 3)) 

             この例でも "いろは" と表示される。

           

          2.右から何文字か抜き出す例

           MsgBox(Strings.Right("いろはにほへと", 2))

             この例では "へと" と表示される。

           

          3.中ほどから何文字か抜き出す例

           以下の例では、2文字目から3文字分抜き出す。

           MsgBox(Mid("いろはにほへと", 2, 3))

             この例では "ろはに" と表示される。

           MsgBox Mid("いろはにほへと", 5, 2)
             この例では"ほへ"と表示される。



           MsgBox("いろはにほへと".Substring(1, 3)) 
             この例でも "ろはに " と表示される。
              Substringメソッドでは先頭の文字を0文字目と数えることに注意。


           

          4.何文字かを除いたすべてを抜き出す例

           左端の2文字を除いたすべてを抜き出す例

           Dim St As String
           St = "いろはにほへと"
           MsgBox Mid(St, 3)
             この例では "はにほへと"と表示される。





           

          | (VB2005・2008) | 10:23 | comments(0) | - | - | - |
          フォーム・サイズの変更範囲に制限
          0
            Me.MinimumSize = New System.Drawing.Size(200, 200)
            200×200よりも小さくならない
            Me.MaximumSize = New System.Drawing.Size(500, 500)
              500×500よりも大きくならない

            フォームのサイズ制限を実装すると、
            指定した最小サイズ〜最大サイズの範囲でしか
            フォームのサイズを変更することができない。
            また、どちらか一方だけを指定することも可能
            | (VB2005・2008) | 23:39 | comments(0) | - | - | - |
            フォームのサイズを変えるとコントロールのサイズも変わる
            0
              摩耶の工工四帳で、

              Formの大きさを変更しても、
              配置したコントロールの位置や大きさは変わりませんでした。
              なんで、力技的に
              B5サイズとタブレットPC用に2つ作ってしまったけど
              他のPCだと、解像度もディスプレーのサイズも違う時
              それぞれ、作るのは大変だ!


              フォームのサイズが変わったらそれに対応して
              表示されている工工四帳も変わってくれたらいいのになぁ・・・・


              なんて、思っていたら、
              ありました!

              プロパティを設定するだけで、自動的に代わってくれる方法が!

              テキストボックスのAnchorプロパティを

              これで、実行時にフォームのサイズを変更すると、
              ピクチャーボックスの大きさが自動的に変化します
              | (VB2005・2008) | 22:02 | comments(0) | - | - | - |
              文字列の一部を抜き出す★1
              0
                nexthttp://p.maya.littlestar.jp/?eid=1147730
                タブのインデックスで判定すると
                行がかわると、奇数偶数での判定が変わる
                   (0からインデックスNoを振るため)ので、

                コントロールの名前の数字部分を判定するように変更

                Dim St As String
                St = Label1.Text
                        '(Label1にActiveControl.Nameを割り当てている)
                'Textbox**の*(8文字目以降)を取得している()
                Dim index As String = Mid(St, 8)

                If index Mod 2 = 1 Then
                Me.Controls(Label1.Text).Text = "○"
                Else
                Me.Controls(Label1.Text).Text = "╍"
                End If
                | (VB2005・2008) | 10:22 | comments(0) | - | - | - |
                偶数・奇数の判定
                0
                  商の余りを計算する演算子のModを使います。

                  If Me.Controls(Label1.Text).TabIndex Mod 2 = 1 Then
                         '奇数M(od 2 = 1)ならば
                  Me.Controls(Label1.Text).Text = "╍"
                  Else
                  Me.Controls(Label1.Text).Text = "○"
                  End If

                  上記プログラムは
                  Label1の内容をコントロール名に変換して
                  タブのインデックスを判定しています
                  | (VB2005・2008) | 09:50 | comments(0) | - | - | - |
                  コントロールに同じコードを書くとき
                  0
                    工工四エディターを作成するとき
                    勘所のテキストボックスに同じコード
                    (クリックしたときにバックカラーを変えるという)を
                    書かなくてはいけませんでした

                    Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As
                    _System.EventArgs) Handles TextBox1.Click
                    Label1.Text = ActiveControl.Name
                    Me.Controls(Label1.Text).BackColor = Color.SkyBlue
                    End Sub

                    1枚の工工四に、半音もいれると
                    勘所の数は312個
                    当然テキストボックスの数も312個

                    方法は
                     ー蠡任舛
                    Private Sub TextBox1_Click(ByVal ・・・・・
                          ・
                          ・
                          ・

                    Private Sub TextBox312_Click(ByVal ・・・・・
                    撃沈撃沈撃沈撃沈撃沈撃沈撃沈撃沈撃沈
                    無理!無理!

                    ◆ー蠡任舛
                    Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click, TextBox2.Click, TextBox3.Click, ・・・・・・・・・・・ TextBox312.Click
                    撃沈撃沈撃沈撃沈撃沈撃沈撃沈撃沈撃沈
                    無理!無理!

                    適用したいテキストボックスを複数選択して

                    実行すると
                    あら不思議てれちゃう

                    Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click, TextBox9.Click, TextBox8.Click, TextBox7.Click, TextBox6.Click, TextBox5.Click, TextBox4.Click, TextBox3.Click, TextBox24.Click, TextBox23.Click, TextBox22.Click, TextBox21.Click, TextBox20.Click, TextBox2.Click, TextBox19.Click, TextBox18.Click, TextBox17.Click, TextBox16.Click, TextBox15.Click, TextBox14.Click, TextBox13.Click, TextBox12.Click, TextBox11.Click, TextBox10.Click

                    Label1.Text = ActiveControl.Name
                    Me.Controls(Label1.Text).BackColor = Color.SkyBlue
                    End Sub

                    自動的に変わっていますハート

                    どのテキストボックスがクリックされたかは、
                    引数senderで判別できます。

                    MsgBox(sender.ToString)




                    | (VB2005・2008) | 01:43 | comments(0) | - | - | - |
                    ドロップされた画像ファイルを表示する
                    0
                      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

                      PictureBox1.AllowDrop = True

                      End Sub



                      Private Sub PictureBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragEnter

                      If e.Data.GetDataPresent(DataFormats.FileDrop) Then
                      e.Effect = DragDropEffects.Copy
                      End If

                      End Sub



                      Private Sub PictureBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragDrop

                      Dim FileName As String

                      FileName = e.Data.GetData(DataFormats.FileDrop)(0)

                      PictureBox1.Image = Image.FromFile(FileName)

                      End Sub



                      フォームのLoadイベントで
                      PictureBox1のAllowDropプロパティをTrue
                      なぜかピクチャーボックスのAllowDropプロパティは
                      プロパティウィンドウでは変更できないので
                      仕方なくコードで変更

                      このようにプロパティウィンドウからはできなくても
                      プログラムでできることもあるようです
                      | (VB2005・2008) | 10:00 | comments(0) | - | - | - |