サブルーチンの外部共通化が可能か?
- 題名: サブルーチンの外部共通化が可能か?
- 著者: もるがん
- 日時: 2008/05/28 17:36:51
- ID: 22136
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: サブルーチンの外部共通化が可能か?
- 著者: やじゅ
- 日時: 2008/05/28 21:31:23
- ID: 22138
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: サブルーチンの外部共通化が可能か?
- 著者: もるがん
- 日時: 2008/05/29 0:20:56
- ID: 22140
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: サブルーチンの外部共通化が可能か?
- 著者: やじゅ
- 日時: 2008/05/29 13:04:48
- ID: 22142
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: サブルーチンの外部共通化が可能か?
- 著者: もるがん
- 日時: 2008/05/30 17:39:32
- ID: 22156
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
よろしくお願いいたします。
1つのプロジェクトで、Form1にテキストボックスやボタンをを配置し、
このような状態で、同じプロジェクト内のForm1に、サブルーチンを
記述してます。ここまでは普通によくあるケースだと思います。(たぶん)
サブルーチンでは、自クラスのテキストボックスの名前を「直接指定」して
使用しています。スコープが範囲内であることをわかっていてるので、引数とか
にしていませんでした。サブルーチンコールとチョッとした引数で、フォーム上の
コントロールを多彩に操作しようと思ったからです。
そして、このようなサブルーチンは共通(やる事も、コントロール名も同じ)なので、
コピペして、異なるプロジェクトに使用してきました。類似のサブルーチンも沢山使用してます。
しかし、サブルーチンの内容を変えるたび、必要なプロジェクトに反映し、
コンパイルし、配布し、、、と私の手に負えなくなるほどに多くなってしまいました。
私がやりたいことは、このサブルーチンをDLLのように外部へ分離し、
共通に使用したいと思ってます。
問題は、呼び出し元の記述を変更したくないと言う事です。
サブルーチンコール名も引数も。もちろんコントロールの名前もです。
Importsして、名前空間の省略とかは苦にならないです。
プロジェクトあたりのサブルーチンコールの
頻度が多くて、全てを変更していられないのです。オブジェクトを引数にしてあげれば
良いのはわかるのですが、膨大すぎるとてもとても。。
自クラスの情報を引数等で与えずに、自クラスのコントロールを弄ってもらう
とは、都合が良すぎるのはわかります。可能な限り少ない変更で済めばと願います。
なんとかなる手立てはありませんでしょうか?ほとほと困り果てております。
自分のレベルが低すぎるのは重々承知です。お知恵をお願いいたします。
(下記のコードの稚拙さは御容赦ください)
Public Class Form1
---
WithEvents TextBoxMain As System.Windows.Forms.TextBox
---
Private Sub Button1_Click(ByVal ...) Handles Button1.Click
TestTest("あ")
End Sub
--
Private Sub Button2_Click(ByVal ...) Handles Button2.Click
TestTest("い")
End Sub
--
Sub TestTest(ByVal message as String)
Select Case message
Case "あ": TextBoxMain.Text = "A1"
Case "い": TextBoxMain.Text = "A1"
Case "う": TextBoxMain.Text = "A1"
End Case
End Sub
End Class