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

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

C# と VB.NET の入門サイト

Re[2]: 新規追加したタブのコントロールについて


(過去ログ 97 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■58080 / inTopicNo.1)  新規追加したタブのコントロールについて
  
□投稿者/ やんまー (35回)-(2011/03/25(Fri) 00:50:45)

分類:[VB.NET/VB2005 以降] 

タブ式のテキストエディタのようなものを作っています。
そこで、メインフォームをダブルクリックするとタブを増やせるようにしました。

Sub MainFormDoubleClick(sender As Object, e As EventArgs)
  Dim tab As New TabPage()
  tabControl1.TabPages.Add(tab)
  tabControl1.SelectedTab = tab

  Dim newtxt As RichTextBox = new RichTextBox
  newtxt.Dock=DockStyle.Fill
  tab.Controls.Add(newtxt)
End Sub


これで無事に実装できたのですが、
こう言った場合、この新しいタブからメインのフォームにアクセスするにはどうしたらよいのでしょうか。

子フォームの場合は
 ctype(me.owner , mainform).text =""
な感じでアクセスできました。

# 加えて、この「RichTextBox」のイベントを処理するにはどうしたらいいのでしょう・・・
# フォームデザイナが使えないので・・・・
引用返信 編集キー/
■58083 / inTopicNo.2)  Re[1]: 新規追加したタブのコントロールについて
□投稿者/ やじゅ (1871回)-(2011/03/25(Fri) 01:46:02)
やじゅ さんの Web サイト
No58080 (やんまー さん) に返信
> こう言った場合、この新しいタブからメインのフォームにアクセスするにはどうしたらよいのでしょうか。
>
> 子フォームの場合は
>  ctype(me.owner , mainform).text =""
> な感じでアクセスできました。

Me.xxxxでメインのフォームにアクセスできませんかね?
まー、もしくは、parentプロパティを使う
ctype(tabControl1.parent, mainform).text =""

> # 加えて、この「RichTextBox」のイベントを処理するにはどうしたらいいのでしょう・・・
> # フォームデザイナが使えないので・・・・

AddHandlerでイベントを追加するようにする
http://dobon.net/vb/dotnet/beginner/eventhandle.html#addhandler
引用返信 編集キー/
■58085 / inTopicNo.3)  Re[1]: 新規追加したタブのコントロールについて
□投稿者/ Azulean (714回)-(2011/03/25(Fri) 07:25:27)
No58080 (やんまー さん) に返信
> これで無事に実装できたのですが、
> こう言った場合、この新しいタブからメインのフォームにアクセスするにはどうしたらよいのでしょうか。

今回の場合、単に Me.Text とかで良いのでは。

あなたがコードを書いているのは、お使いのフォームに対応するクラスです。
タブのクラスでコードを書いているのではないのですから、"今の場所がタブであり、「タブからメインフォームにアクセスしなければならない」"という認識が間違っています。


子フォームで Owner を見る必要があるのは、別のフォーム、別のクラスになっているからです。
# もっとも、Owner をキャストして使わないといけない状況は、あまり良い設計とは言えませんが。
引用返信 編集キー/
■58095 / inTopicNo.4)  Re[2]: 新規追加したタブのコントロールについて
□投稿者/ やんまー (36回)-(2011/03/25(Fri) 14:11:45)
やじゅ さん ありがとうございます。

フォームデザイナを使わずに
コードを書けばよさそうですね・・・

なんとか書いてやってみます!

また、わからなかったらよろしくお願いします!


No58083 (やじゅ さん) に返信
> ■No58080 (やんまー さん) に返信
>>こう言った場合、この新しいタブからメインのフォームにアクセスするにはどうしたらよいのでしょうか。
>>
>>子フォームの場合は
>> ctype(me.owner , mainform).text =""
>>な感じでアクセスできました。
>
> Me.xxxxでメインのフォームにアクセスできませんかね?
> まー、もしくは、parentプロパティを使う
> ctype(tabControl1.parent, mainform).text =""
>
>># 加えて、この「RichTextBox」のイベントを処理するにはどうしたらいいのでしょう・・・
>># フォームデザイナが使えないので・・・・
>
> AddHandlerでイベントを追加するようにする
> http://dobon.net/vb/dotnet/beginner/eventhandle.html#addhandler
引用返信 編集キー/
■58105 / inTopicNo.5)  Re[2]: 新規追加したタブのコントロールについて
□投稿者/ やんまー (37回)-(2011/03/25(Fri) 15:40:38)
Azulean さん ありがとうございます。

説明が足らなかったです。申し訳ありません。

何をやりたかったか、もう少し具体的に言いますと、
「タブのなかのテキストボックスをマウスドラッグしてフォームごと移動させたい」
ということでした。

とすると、タブのテキストボックス上のMOUSEDOWN、MOUSEMOVEイベントにて
メインフォームを移動させてやらないといけないと思います。

そこで「新しいタブからメインのフォームにアクセス」という言い方になっていました。




No58085 (Azulean さん) に返信
> ■No58080 (やんまー さん) に返信
>>これで無事に実装できたのですが、
>>こう言った場合、この新しいタブからメインのフォームにアクセスするにはどうしたらよいのでしょうか。
>
> 今回の場合、単に Me.Text とかで良いのでは。
>
> あなたがコードを書いているのは、お使いのフォームに対応するクラスです。
> タブのクラスでコードを書いているのではないのですから、"今の場所がタブであり、「タブからメインフォームにアクセスしなければならない」"という認識が間違っています。
>
>
> 子フォームで Owner を見る必要があるのは、別のフォーム、別のクラスになっているからです。
> # もっとも、Owner をキャストして使わないといけない状況は、あまり良い設計とは言えませんが。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -