We really need to see some sample code. if you click in the area of the
buttons, do you get any reaction from the application?
A few things to try:
1) Generate another application, with one form, two buttons, build it and
try it out on the client. If they can see the buttons, then probably you've
got a correctable problem.
2) In your current app, right-click both buttons, and "Bring To Front",
then re-deploy
3) Put another control like a label. In the click event, put a
SaveButton.Show() and RefreshButton.Show() to see if they appear on the
label's click event. I can't say why this would work, but it might get you
headed in the right direction. If you can remote debug, or log to file,
check the visible property of the buttons on the click of the label to see
if the buttons are somehow being turned off.
4) Make sure that the windows theme (assuming XP) or colours are set to
defaults.
Good Luck!!
Trevor
> We have a simple client app that has a datagrid and two standard
> System.Windows.Forms.Button(s); Save and Refresh. Of 20-30 installs we
[quoted text clipped - 5 lines]
>
> Thanks...
Keith McDonald - 06 Feb 2006 19:00 GMT
Thanks for all of the information but seems this "one" user is still
having problems. And to note his machine is a new rebuild of the OS
Windows XP Pro
User is getting the buttons on a test form so we then tried 2-4.
Right-click bring to front on the two buttons and put code behind one
of the labels to set the visible property to true(also added code to
show a messagebox) and the user changed his theme to Windows Classic.
Once he installed to new client he still doesn't see the buttons but
clicking on the label says that the visible property already "True" but
no buttons. He also ran through the process after uninstalling McAfee
on his machine with the same results. Here's the code for the page
load and button actions. Most of the stuff is for setup of the
datagrid. Also added the button click events if needed. Let me know
if something sticks out...
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim conServer As String
Dim conPort As Integer
Dim strVersion As String
Dim strReleaseDate As String
Dim dgTblStyle As New DataGridTableStyle
Dim dgAck As New DataGridBoolColumn
Dim dgStatus As New FormattableTextBoxColumn
Dim dgPriority As New FormattableTextBoxColumn
Dim dgSubject As New FormattableTextBoxColumn
Dim dgIncidentNum As New FormattableTextBoxColumn
Dim dgTeam As New FormattableTextBoxColumn
Dim dgRecID As New DataGridTextBoxColumn
Dim dgISubject As New DataGridTextBoxColumn
Dim dgISymptom As New DataGridTextBoxColumn
Dim dgDetails As New DataGridTextBoxColumn
Dim dgIRecID As New DataGridTextBoxColumn
Dim ico As System.Drawing.Icon
myTimer = New System.Timers.Timer(300000)
'Setup timed refresh of datagride
AddHandler myTimer.Elapsed, AddressOf TimerFired
myTimer.AutoReset = True
myTimer.Start()
strVersion =
System.Configuration.ConfigurationSettings.AppSettings.Item("Version").ToString
strReleaseDate =
System.Configuration.ConfigurationSettings.AppSettings.Item("ReleaseDate").ToString
userName = Environment.UserDomainName & "\" &
Environment.UserName
Me.Text = "SSA Help Desk Alert"
Me.lblLogin.Text = "Win Authentication: " &
Environment.UserName
Me.StatusBar1.Panels.Item(1).Text = "Version " & strVersion & "
Release " & strReleaseDate
Me.StatusBar1.Show()
ico = New System.Drawing.Icon("SSAHelpDeskAlert.ico")
Me.Icon = ico
Me.priorityTextBrush = New SolidBrush(Color.Red)
'Setup of the datagrid columns
dgRecID.MappingName = "RecID"
dgRecID.Width = 0
dgRecID.ReadOnly = True
dgISubject.MappingName = "ISubject"
dgISubject.Width = 0
dgISubject.ReadOnly = True
dgISymptom.MappingName = "Symptom"
dgISymptom.Width = 0
dgISymptom.ReadOnly = True
dgDetails.MappingName = "Details"
dgDetails.Width = 0
dgDetails.ReadOnly = True
dgIRecID.MappingName = "IRecID"
dgIRecID.Width = 0
dgIRecID.ReadOnly = True
dgAck.MappingName = "Ack."
dgAck.HeaderText = "Ack."
dgAck.Width = 25
dgAck.AllowNull = False
dgStatus.MappingName = "Status"
dgStatus.HeaderText = "Status"
dgStatus.Width = 75
dgStatus.ReadOnly = True
AddHandler dgStatus.SetCellFormat, AddressOf FormatGridRow
dgSubject.MappingName = "Subject"
dgSubject.HeaderText = "Subject"
dgSubject.Width = 275
dgSubject.ReadOnly = True
dgSubject.TextBox.Multiline = True
dgSubject.TextBox.WordWrap = True
AddHandler dgSubject.SetCellFormat, AddressOf FormatGridRow
dgTeam.MappingName = "Team"
dgTeam.HeaderText = "Team"
dgTeam.Width = 110
dgTeam.ReadOnly = True
AddHandler dgTeam.SetCellFormat, AddressOf FormatGridRow
dgIncidentNum.MappingName = "Incident#"
dgIncidentNum.HeaderText = "Incident#"
dgIncidentNum.Alignment = HorizontalAlignment.Right
dgIncidentNum.ReadOnly = True
AddHandler dgIncidentNum.SetCellFormat, AddressOf FormatGridRow
dgPriority.MappingName = "Priority"
dgPriority.HeaderText = "Priority"
dgPriority.Alignment = HorizontalAlignment.Right
dgPriority.Width = 50
dgPriority.ReadOnly = True
AddHandler dgPriority.SetCellFormat, AddressOf FormatGridRow
dgTblStyle.MappingName = "Data"
dgTblStyle.GridColumnStyles.Add(dgAck)
dgTblStyle.GridColumnStyles.Add(dgStatus)
dgTblStyle.GridColumnStyles.Add(dgPriority)
dgTblStyle.GridColumnStyles.Add(dgSubject)
dgTblStyle.GridColumnStyles.Add(dgIncidentNum)
dgTblStyle.GridColumnStyles.Add(dgTeam)
dgTblStyle.GridColumnStyles.Add(dgRecID)
dgTblStyle.GridColumnStyles.Add(dgISubject)
dgTblStyle.GridColumnStyles.Add(dgISymptom)
dgTblStyle.GridColumnStyles.Add(dgDetails)
dgTblStyle.GridColumnStyles.Add(dgIRecID)
'Setup dataset
ds.Tables.Add("Data")
ds.Tables("Data").Columns.Add("RecID")
ds.Tables("Data").Columns(0).ColumnMapping = MappingType.Hidden
ds.Tables("Data").Columns.Add("Ack.",
System.Type.GetType("System.Boolean"))
ds.Tables("Data").Columns.Add("Created")
ds.Tables("Data").Columns.Add("Status")
ds.Tables("Data").Columns.Add("Priority")
ds.Tables("Data").Columns.Add("Subject")
ds.Tables("Data").Columns.Add("Incident#")
ds.Tables("Data").Columns.Add("Team")
ds.Tables("Data").Columns.Add("ISubject")
ds.Tables("Data").Columns.Add("Symptom")
ds.Tables("Data").Columns.Add("Details")
ds.Tables("Data").Columns.Add("IRecID")
ds.Tables.Add("Journals")
ds.Tables("Journals").Columns.Add("RecID")
ds.Tables("Journals").Columns.Add("Subject")
ds.Tables("Journals").Columns.Add("NotesBody")
dv = New DataView(ds.Tables("Data"))
dv.AllowNew = False
dv.AllowDelete = False
'DataGrid1.DataSource = dv
'DataGrid1.SetDataBinding(ds, "Data")
DataGrid1.SetDataBinding(dv, "")
DataGrid1.TableStyles.Add(dgTblStyle)
DataGrid1.CaptionText = "ITSM Open Incidents"
conServer =
System.Configuration.ConfigurationSettings.AppSettings.Item("localServer").ToString
conPort =
System.Configuration.ConfigurationSettings.AppSettings.Item("localPort").ToString
'mobjClient = New TcpClient("whqwts02", 5000)
'mobjClient = New TcpClient("localhost", 5000)
mobjClient = New TcpClient(conServer, conPort)
DisplayText("Connected to host" & vbCrLf)
mobjClient.GetStream.BeginRead(marData, 0, 1024, AddressOf
DoRead, Nothing)
'Initial Population of the Teams
requestTeams()
End Sub
Private Sub lblLogin_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles lblLogin.Click
'MessageBox.Show(bntSave.Visible.ToString, "Test",
MessageBoxButtons.OK)
bntSave.Visible = True
btnRefresh.Visible = True
End Sub
Private Sub btnRefresh_Click_1(ByVal sender As System.Object, ByVal
e As System.EventArgs)
requestData()
End Sub
Private Sub bntSave_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Dim i As Integer
Dim builder As New StringBuilder
Dim found As Boolean
If ds.Tables("Data").Rows.Count > 0 Then
For i = 0 To ds.Tables("Data").Rows.Count - 1
If ds.Tables("Data").Rows(i).Item("Ack.") = True Then
builder.Append("<?xml version=""1.0""
encoding=""UTF-8""?>")
builder.Append("<Message type=""SQLString"">")
builder.Append("<stringData>UPDATE task SET
status='Acknowledge', AcknowledgedBy='" & userName & "',
AcknowledgedDateTime=getDate() WHERE recid = '" &
ds.Tables("Data").Rows(i).Item("recid") & "' AND status =
'Waiting'</stringData>")
builder.Append("</Message>")
Send(builder.ToString)
DisplayText("Update Incident Number " &
ds.Tables("Data").Rows(i).Item("Incident#") & vbCrLf)
End If
Next
End If
requestData()
End Sub
Could it be caused by anti-virus program? It is a known problem that McArfee
causes Windows MessageBox's button disapperear. I haven't heard the same
thing happens on Windows form. Try to disable anti-virus on that machine to
see what happens.
> We have a simple client app that has a datagrid and two standard
> System.Windows.Forms.Button(s); Save and Refresh. Of 20-30 installs we
[quoted text clipped - 5 lines]
>
> Thanks...
>We have a simple client app that has a datagrid and two standard
>System.Windows.Forms.Button(s); Save and Refresh. Of 20-30 installs we
[quoted text clipped - 5 lines]
>
>Thanks...
This may sound far fetched to you, but once we had a user who couldn't
see the text in a control and we spent days trying to figure it out,
because as in your situation, all the other users could see the text.
It turned out that the user had set his windows colors to his college
colors. Guess what. When you set your text to white on an orange
background (incorrectly) you won't be able to see it in list controls.
It's always a good idea to check color changes when it doesn't seem
logical that a control doesn't act correctly. That may not be the
problem, but it should be one of the considerations.
Otis Mukinfus
http://www.otismukinfus.com
http://www.tomchilders.com
Bruce Wood - 06 Feb 2006 21:04 GMT
> It turned out that the user had set his windows colors to his college colors.
IMHO that is its own punishment, and well deserved.