とりこらぼ。

Learn from yesterday,
live for today,
hope for tomorrow.

目次

Blog 利用状況

ニュース

プロフィール

  • 名前:とりこびと
    とるに足らない人間です。

  • Wankuma MVP
    for '平々凡々'

Web Site

  • Memo(Of T)

もうひとつの Blog

広告っぽい

書庫

日記カテゴリ

みんなともだち。(アクセス レベルの話)

<Attention>
   MS Access のレベルではありません。(※ 私はとってもレベル低いです。)
</Attention>

MSDN:Visual Basic でのアクセス レベル(http://msdn2.microsoft.com/ja-jp/library/76453kax(VS.80).aspx)

コレ↑のことです。クラスだったり、変数だったりにアクセスするために必要な権限の程度のことですね。何があってどれがどのような権限なのかはリンク先を見ていただけるとお分かりになるかと思います。(ここを怠ける自分がちょっとキライ。)

で、今回のエントリのタイトルは「みんなともだち。」なわけなんですが、分かる方は分かりますよね?(アレですよ、ほら、例の。)

さて、なんのことやら?とお思いの方や、私自身のためにやってみますよ。Visual Studio 2005 を使用して Visual Basic で WindowsApplication プロジェクトを作成します。プロジェクト名は「WindowsApplication1」でいいや。
で、例によって出来上がった Form1 にデザイナのツールボックスから Button をそーっと配置してみましょ。配置しましたか?しましたね?Button1 ですよね?ではそのままデザイナでその Button1 のプロパティを眺めてみてください。

ともだち(Friend)いましたか?

Modiffier プロパティが 'Friend' になっていますね。そうなんです、Visual Studio 2005(.NET 2003でも。)でVisual Basicのプロジェクトを作成するとデザイナから配置されたコントロールやらのアクセスレベルがデフォルトでは 'Friend' なんですよ!(ここ、びっくりするとこ!)C♯だと 'private' になるはずです。

「べつにどーってコトねーぢゃん。」ってお思いのあなた、いろいろあるんですよ、オブジェクト指向の観点からだとか。(←改めて書けたら書きます。)今回はこのことが感覚的に「なんか・・・やばくね?」って思えるようなことをしておきます。今までの流れの続きで以下の用意をしてください。

  1. Form1 にボタンをもうひとつ追加。(Button2 という名前で)
  2. 新たに Form2 を作成する。
  3. Form2 にボタンをひとつ追加。(Button1 という名前で。Text プロパティは "Form2 のButton1だよ。" にしておくとなおヨシ!)
  4. Form1 のコードは以下の内容にします。
    Public Class Form1
    
      Private f2 As Form2
      Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        f2 = New Form2
        f2.Show()
      End Sub
      Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button2.Click
        Me.Controls.Add(f2.Button1)
      End Sub
    End Class
  5. Form2 のコードは以下の内容にします。
    Public Class Form2
    
      Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show("らめぇぇぇぇ~!")
      End Sub
    End Class

さて、用意ができました。デバッグ実行でもしてみましょう。

まず、実行すると Form1 が表示されますね。次に Form1 の Button1 をクリックしてみます。すると Form2 が表示されますね。ここまでは問題なっしんぐ。さらに Form1 の Button2 をクリックしてみます。すると・・・

あっ!Form2 のボタンが Form1 に!!?

さらにその(Form2 から Form1 にいっちゃった)ボタンをクリックしてみると・・・

らめぇぇぇぇ~!

・・・どうですか?コレを見て「やばくね?」って思っていただけるとうれしいです。つまり、ボタンのアクセス レベルが 'Friend' であるがゆえに、Form1 が Form2 のボタンを盗っちゃえるんですね。自分以外の人がもし、あなたの Form に対してこんなことしたとしたら・・・ヤですよね。

というわけで、アクセスレベルを考えましょうっていうお話でした。

投稿日時 : 2007年3月14日 17:40

Feedback

# re: みんなともだち。(アクセス レベルの話) 2007/03/14 18:04 シャノン

VB6のときに、他のフォーム上のコントロールをいぢくりまわしているプログラムが多かったんでしょうね。

# re: みんなともだち。(アクセス レベルの話) 2007/03/14 18:12 ぽぴ王子

今日から臨時でVisual Basic(しかもWindowsCE)の仕事をしている王子はいつもクライマックスだぜ!(意味不明)

WindowsCEの仕事は以前もeMbedded Visual C++などというびみょーな開発環境(びみょー言うな)でやってた
ことがあるので別に知らない仲ではないですが、Visual Basic指定っていうのがどうも…
なんか使っていくうちにいろいろがいろいろでいろいろなので…キライになりそうです>Visual Basic
Friend、いっぱい出てきました。
きっと有名になったから自称友達が増えてきたんじゃないかなぁ。金貸してくれとか。

>>シャノンさん
Visual Basic 2005になって日和ったとかさんざん言われてましたが、確かにこれはひどいwwww
VB6のアレでナニな思想をそのまま引きずってきちゃった感が。
ユーザが「オブジェクト指向だかなんだか知らんが、フォームは簡単にコントロールさせろ」とか言ってきたんでしょうか。
なんかもうキライになりそうです(2回目)

# re: みんなともだち。(アクセス レベルの話) 2007/03/14 20:27 とりこびと

コメントありがとうございます。

>シャノンさん

なるほど、歴史と文化が生きているんですね(ポジティヴ思考)

>ぶぃび王・・・ぽぴ王子さん

いろいろやられてるんですねぇ。

っていうか、Visual Basic をキライにさせるためにやってるんじゃないんですけどwww



# しかし「らめぇぇぇ」を入れたのに今回は触れられない・・・。orz

# re: みんなともだち。(アクセス レベルの話) 2007/03/14 21:10 シャノン

> # しかし「らめぇぇぇ」を入れたのに今回は触れられない・・・。orz

18歳未満の方は閲覧をご遠慮ください。
http://mootoko.blog.shinobi.jp/Entry/385/

# re: みんなともだち。(アクセス レベルの話) 2007/03/14 21:58 とりこびと

シャノンさん、コメントありがとう(?)ございます。

>18歳未満の方は閲覧をご遠慮ください。

ちょwwwなんてリンクをwwwwww

私は遠慮しとかないと・・・。

# re: みんなともだち。(アクセス レベルの話) 2007/03/14 23:40 ぽぴ王子

らめぇぇぇの元ネタ、あれが元ネタだとは知らなかったけどその話は
知っていた自分に驚愕。

Visual Basic自体のC#との差異もさることながら、やはりWindowsCE
(というか.NET Compact Framework)にウギャーとなっている感じが
します。

エロ本仕込んでくれないし…>Visual Basic(まだ続けるか)
なんかもうキライになりそうです(3回目)

# re: みんなともだち。(アクセス レベルの話) 2007/03/15 8:48 とりこびと

ぽぴ王子さん、コメントありがとうございます。

>Visual Basic自体のC#との差異もさることながら、
>やはりWindowsCE(というか.NET Compact Framework)
>にウギャーとなっている感じがします。

.NET Compact Frameworkっていまだ触ったことないので今週末にでもウチでやってみます♪

いろいろ書いてみて思ったんですけど、今まで書いたことを理解してC♯のようにコードですべて見えるようにすることはできるんです。でも、Visual Studio はその作業はやってくれないんですよ。
とっつきやすさをウリにしている感じもありますが、幅広くユーザーを得ようとするならレベルに合わせたテンプレがあったらいいなぁなんて思います。

C♯のテンプレと同じ内容のがVisual Basicにもあればなぁ・・・。

# re: みんなともだち。(アクセス レベルの話) 2007/03/15 9:25 とりこびと

>C♯のテンプレと同じ内容の

あ、つくればいいのか♪

# re: みんなともだち。(アクセス レベルの話) 2007/03/15 9:26 じゃんぬねっと

ControlDesigner.InitializeNewComponent メソッドで指定しているかと思いきや、言語ごとに結果が変わるので関係ないよね。

せめて IDE 上で設定できるようにしておいてくれたらいいのに...
Microsoft に Feedback してみようかな。

# re: みんなともだち。(アクセス レベルの話) 2007/03/15 10:37 επιστημη

デフォルトでFriendだなんて...
好き嫌いの問題ぢゃねぇだろ。
嫌いを通り越して憎悪さえ覚える。

言語仕様にさほどの文句はないんだが、
なんでIDEがそこまでVB6に日和るかなー
デフォルトでお行儀の悪いコードを吐きますかそーですか。

# re: みんなともだち。(アクセス レベルの話) 2007/03/15 11:18 とりこびと

じゃんぬねっとさん、コメントありがとうございます。

そういわれればそうですね。仕組みが気になります・・・。

IDEって幅広い受け口を低いほうに広げておけ!な感じに取り違えてる気がしますね。

# re: みんなともだち。(アクセス レベルの話) 2007/03/15 11:21 とりこびと

επιστημη さん、コメントありがとうございます。

あ、嫌いを通り越しましたか。orz

まぁ Visual Basic がいまいちってのが分かる気はしていますけどね。


# ん~。注意警鐘が違った効果を生んでますなぁ・・・。

# re: みんなともだち。(アクセス レベルの話) 2007/03/15 15:18 とりこびと

C♯のテンプレからVisual Basicのやつ起こそうとしてますが、いかんせん時間がかかる・・・。

まとまった時間がほしいさ。orz

# .Designer.vb は何してますか?(きっと)その1。 2007/03/16 9:51 とりこびと ぶろぐ。

.Designer.vb は何してますか?(きっと)その1。

# FXVUZXNwwnnFjek 2011/12/29 21:21 http://www.healthinter.org/health/page/abilify.php

I do`t see a feedback or the other coordinates from the blog administration!...

# Hurrah, that's what I was exploring for, what a stuff! present here at this blog, thanks admin of this website. 2021/07/27 6:31 Hurrah, that's what I was exploring for, what a st

Hurrah, that's what I was exploring for, what a stuff!
present here at this blog, thanks admin of this website.

# Hey there just wanted to give you a brief heads up and let you know a few of the images aren't loading correctly. I'm not sure why but I think its a linking issue. I've tried it in two different internet browsers and both show the same outcome. 2021/08/08 11:21 Hey there just wanted to give you a brief heads up

Hey there just wanted to give you a brief heads up and let you know a few of the images aren't loading
correctly. I'm not sure why but I think its a linking issue.
I've tried it in two different internet browsers and both show the same
outcome.

# I do accept as true with all of the concepts you have introduced in your post. They are really convincing and can certainly work. Still, the posts are very brief for novices. May just you please lengthen them a bit from next time? Thanks for the post. 2021/08/28 23:01 I do accept as true with all of the concepts you h

I do accept as true with all of the concepts you have introduced in your post.
They are really convincing and can certainly work. Still, the posts
are very brief for novices. May just you please lengthen them
a bit from next time? Thanks for the post.

# I do accept as true with all of the concepts you have introduced in your post. They are really convincing and can certainly work. Still, the posts are very brief for novices. May just you please lengthen them a bit from next time? Thanks for the post. 2021/08/28 23:02 I do accept as true with all of the concepts you h

I do accept as true with all of the concepts you have introduced in your post.
They are really convincing and can certainly work. Still, the posts
are very brief for novices. May just you please lengthen them
a bit from next time? Thanks for the post.

# I do accept as true with all of the concepts you have introduced in your post. They are really convincing and can certainly work. Still, the posts are very brief for novices. May just you please lengthen them a bit from next time? Thanks for the post. 2021/08/28 23:03 I do accept as true with all of the concepts you h

I do accept as true with all of the concepts you have introduced in your post.
They are really convincing and can certainly work. Still, the posts
are very brief for novices. May just you please lengthen them
a bit from next time? Thanks for the post.

# I do accept as true with all of the concepts you have introduced in your post. They are really convincing and can certainly work. Still, the posts are very brief for novices. May just you please lengthen them a bit from next time? Thanks for the post. 2021/08/28 23:04 I do accept as true with all of the concepts you h

I do accept as true with all of the concepts you have introduced in your post.
They are really convincing and can certainly work. Still, the posts
are very brief for novices. May just you please lengthen them
a bit from next time? Thanks for the post.

# I'm not sure exactly why but this site is loading very slow for me. Is anyone else having this problem or is it a problem on my end? I'll check back later and see if the problem still exists. 2021/08/30 11:00 I'm not sure exactly why but this site is loading

I'm not sure exactly why but this site is loading very slow for me.
Is anyone else having this problem or is it a problem on my end?
I'll check back later and see if the problem still exists.

# I'm not sure exactly why but this site is loading very slow for me. Is anyone else having this problem or is it a problem on my end? I'll check back later and see if the problem still exists. 2021/08/30 11:01 I'm not sure exactly why but this site is loading

I'm not sure exactly why but this site is loading very slow for me.
Is anyone else having this problem or is it a problem on my end?
I'll check back later and see if the problem still exists.

# I'm not sure exactly why but this site is loading very slow for me. Is anyone else having this problem or is it a problem on my end? I'll check back later and see if the problem still exists. 2021/08/30 11:02 I'm not sure exactly why but this site is loading

I'm not sure exactly why but this site is loading very slow for me.
Is anyone else having this problem or is it a problem on my end?
I'll check back later and see if the problem still exists.

# I'm not sure exactly why but this site is loading very slow for me. Is anyone else having this problem or is it a problem on my end? I'll check back later and see if the problem still exists. 2021/08/30 11:03 I'm not sure exactly why but this site is loading

I'm not sure exactly why but this site is loading very slow for me.
Is anyone else having this problem or is it a problem on my end?
I'll check back later and see if the problem still exists.

# What a information of un-ambiguity and preserveness of precious know-how about unpredicted emotions. quest bars https://www.iherb.com/search?kw=quest%20bars quest bars 2021/09/12 15:35 What a information of un-ambiguity and preservenes

What a information of un-ambiguity and preserveness of precious know-how about unpredicted emotions.
quest bars https://www.iherb.com/search?kw=quest%20bars quest bars

タイトル
名前
Url
コメント