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

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

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

Re[4]: 継承した部品


(過去ログ 113 を表示中)

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

■66728 / inTopicNo.1)  継承した部品
  
□投稿者/ 寿里庵 (1回)-(2013/05/20(Mon) 16:02:10)

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

VB.net2008でコンポーネントを追加して、TextBoxから継承しフォーカスが当たっているときは、テキストを全て選択(SelectAll)する部品を作ろうとしています。

Imports System.Configuration
Imports System.Text.RegularExpressions

Public Class SelectText
Inherits TextBox ←ここでエラーがでます。

'TextBox_GotFocus処理
Public Shared Sub TextBoxGotFocus(ByVal sender As Object, ByVal frm As System.Windows.Forms.Form)

DirectCast(sender, TextBox).SelectAll()
frm.BeginInvoke(New MethodInvoker(AddressOf DirectCast(sender, TextBox).SelectAll))

End Sub

End Class

エラーの内容は、
クラス'SelectText' に指定された基本クラス 'System.Windows.Forms.TextBox' は、その他の partial 型の 1 つである基本クラス 'System.ComponentModel.Component' と異なることはできません。

と出てきます。

原因はいったいなんでしょうか?



引用返信 編集キー/
■66729 / inTopicNo.2)  Re[1]: 継承した部品
□投稿者/ shu (319回)-(2013/05/20(Mon) 16:51:10)
No66728 (寿里庵 さん) に返信

Designer.Vbの
Inherits 〜
の行を
Inherits TextBox
に置き換えてみて下さい。
提示コードの
Inherits TextBox
は不要です。
引用返信 編集キー/
■66730 / inTopicNo.3)  Re[2]: 継承した部品
□投稿者/ 寿里庵 (2回)-(2013/05/20(Mon) 18:07:28)
shu さんありがとうございました。
解決できました。

新たな問題が発生しました。
TextBoxから継承しフォーカスが当たっているに、テキストを全て選択(SelectAll)処理がうまくいきません

Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)

Me.SelectAll()

End Sub

では、うまくいきません
共通の関数やクラスは作成経験があるのですが、部品を作るのは初めてでわからないことだらけです。
よろしくお願いします。



引用返信 編集キー/
■66731 / inTopicNo.4)  Re[3]: 継承した部品
□投稿者/ 太郎冠者 (4回)-(2013/05/20(Mon) 19:46:16)
VB.NETではGotFocus/LostFocusイベントではなくEnter/Leaveイベントを使いましょう。
http://dobon.net/vb/dotnet/vb6/gotfocusevent.html

Protected Overrides Sub OnEnter(ByVal e As EventArgs)
    MyBase.OnEnter(e)
    Me.SelectAll()
End Sub

タブキーでフォーカス移動した場合は上記の処理で問題なく動きますが
マウスクリックで選択した場合は全選択出来ません。

マウスクリックにも対応させたい場合はClickイベントなりを拾って工夫する必要があったと思います。
この辺りは割とよく躓く所なので、探せば有用な情報は見つかるかと思います。

引用返信 編集キー/
■66732 / inTopicNo.5)  Re[3]: 継承した部品
□投稿者/ 寿里庵 (3回)-(2013/05/20(Mon) 19:47:24)
一応、下記のソースを書いてみましたが旨く動作できません


Imports System.Configuration
Imports System.Text.RegularExpressions

Public Class クラス名
Inherits TextBox

Protected Overrides Sub OnGotFocus(ByVal e As EventArgs)

Me.SelectAll()
MyBase.OnGotFocus(e)

End Sub

Protected Overrides Sub OnClick(ByVal e As EventArgs)
MyBase.OnGotFocus(EventArgs.Empty)
MyBase.OnClick(e)
End Sub

End Class

よろしくお願いします。

引用返信 編集キー/
■66756 / inTopicNo.6)  Re[4]: 継承した部品
□投稿者/ 寿里庵 (4回)-(2013/05/22(Wed) 14:27:17)
shuさん・太郎冠者さん ありがとうございました
解決しました
また、色々ご迷惑をおかけしますがよろしくお願いします
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -