existe-t-il n'importe quel type de msgbox code> dans vb.net qui donne un message et il disparaît automatiquement après un certain temps?
Ou existe-t-il une méthode pour masquer le
msgbox code>, sans cliquer sur OK? P>
9 Réponses :
Non, je ne pense pas qu'il y ait un contrôle de cadre intégré qui le fera pour vous. Toutefois, vous pouvez facilement le faire avec une forme personnalisée qui tire une minuterie dans sa chargement charger code>. Ensuite, lorsque la quantité de temps définie est passée, dans la minuterie
Evirsed code> événement, vous pouvez simplement fermer le formulaire. P>
C'est la voie p>
http://www.vbforums.com/showpost.php?p= 3745046 & postcount = 5 p>
Nous avons découragé les réponses composées de liens uniquement, veuillez l'expliquer brièvement. Dans le cas où ce lien a été supprimé, votre réponse deviendra un non-sens.
Utilisez une minuterie ou un certain type de retard / de sommeil et après l'expiration de l'heure d'expiration
SendKeys.Send("~")
Pourriez-vous ajouter un peu plus à votre réponse ou inclure un exemple de code?
Je ne pense pas qu'il y ait un outil tel que cela. Mais je pense que vous pouvez faire cela avec suivir ces étapes; P>
P.s: Si je me trompe, je suis désolé. Je n'essaye que de résoudre quelque chose, peut-être qu'il y a un meilleur moyen de résoudre votre problème. P>
Vous pouvez utiliser p>
CreateObject ("wscript.shell"). Popup ("Bienvenue", 1, "Titre") Strort> P>
Cette msgbox se fermera automatiquement après 1 seconde p>
Y a-t-il un moyen de disposer de méthodes de ce objet automatiquement par IntelliSense? Doit-il être coulé à un type?
Y a-t-il un moyen de le faire apparaître sur toutes les autres fenêtres? Ou pour spécifier une position?
Juste pour ajouter si vous vouliez utiliser ceci dans VBA Utilisez appel code> avant la ligne entière
CreateObject ("wscript.shell"). Popup ("Vous êtes tôt", 2, msgbox_string, msgboxstyle.critique) Nous pouvons également ajouter du style à la boîte.
Inspiré des réponses, c'est ce que je suis venu avec, fonctionnant bien dans des cas simples, permettant d'utiliser toutes les fonctionnalités de MSGBox directement:
Imports System.Threading Module FormUtils Private sAutoClosed As Boolean Private Sub CloseMsgBoxDelay(ByVal data As Object) System.Threading.Thread.Sleep(CInt(data)) SendKeys.SendWait("~") sAutoClosed = True End Sub Public Function MsgBoxDelayClose(prompt As Object, ByVal delay As Integer, Optional delayedResult As MsgBoxResult = MsgBoxResult.Ok, Optional buttons As MsgBoxStyle = MsgBoxStyle.ApplicationModal, Optional title As Object = Nothing) As MsgBoxResult Dim t As Thread If delay > 0 Then sAutoClosed = False t = New Thread(AddressOf CloseMsgBoxDelay) t.Start(delay) MsgBoxDelayClose = MsgBox(prompt, buttons, title) If sAutoClosed Then MsgBoxDelayClose = delayedResult Else t.Abort() End If Else MsgBoxDelayClose = MsgBox(prompt, buttons, title) End If End Function End Module
Vous pouvez le faire en ajoutant une minuterie à votre formulaire.
'Minuterie à autoclose après 100 ms
Dim second secondes comme entier = 100
J'ai un certain code pour afficher le temps mis à jour du fichier et fermer la boîte de message dans les 3 secondes. S'il vous plaît voir ci-dessous. J'espère que ce code peut supporter ce sujet.
Sub Workbook_Open() Application.ScreenUpdating = False SplashUserForm.Show Windows(ThisWorkbook.Name).Visible = True Application.ScreenUpdating = True last_update = "Last updated : " & Format(FileDateTime(ThisWorkbook.FullName), "ddd dd/mm/yy hh:mm ampm") 'Close message after time if no action! Dim myTimedBox As Object Dim boxTime%, myExpired%, myOK%, myQuestBox% 'Access timed message box. Set myTimedBox = CreateObject("WScript.Shell") boxTime = 3 'User Selected "OK." If myQuestBox = 1 Then 'Add any code in place of code below for this condition! myOK = myTimedBox.Popup(last_update & vbCr & "Do nothing and this message will close in 3 seconds.", _ boxTime, "You Took Action!", vbOKOnly) Else 'User took no Action! myExpired = myTimedBox.Popup(last_update & vbCr & "Do nothing and this message will close in 3 seconds.", _ boxTime, "No Action Taken!", vbOKOnly) End If End Sub
La réponse de Linendra Soni est bonne, mais elle peut ne pas fonctionner dans les nouvelles versions de Windows et / ou Excel.
Cela fonctionne parfaitement dans les nouvelles versions: strong> p> < Pré> xxx pré>
Ibo, je viens d'utiliser votre code. Comment puis-je ajouter une nouvelle ligne? J'ai essayé VBNewline et VBCLLF, mais ils n'ont pas fonctionné.
String = "Line 1" & VBNewline & "Line2", remplacez "Hello!" avec str
Peut-être devriez-vous implémenter votre propre boîte de message et obtenir son code pour la décolorer après un certain temps (il est facile de le faire). Je ne pense pas que les messages de messagerie ont cette fonctionnalité.
Pourriez-vous s'il vous plaît me donner un indice comment le faire?
Je suppose que cette réponse par aj le fait. N'oubliez pas de montrer le formulaire avec
.Showdialog () code>