|
The DataGrid supports binding to several different types of sources. Sources implementing IList or IBindableList are just two of the possibilities.
I've heard good things about Janus System's grid, but I didn't know about it until after I made my purchase (below). Janus is supplying prizes to October's competition so I would look into them just for that.
I needed more control in the grid so I tried - and later purchased - Xceed's .NET Grid (www.gridcomponent.com[^]). Source to the runtime grid is available for purchase. While I was beta-testing the grid in August I ran across a couple snags, but my e-mails were answered shortly afterwards (I sent the e-mails around 4am EST, I had replies waiting for me when I woke up at noon).
Of course neither help you if you are looking for a free custom-grid solution.
James
- out of order -
|
|
|
|
|
James T. Johnson wrote:
Of course neither help you if you are looking for a free custom-grid solution.
Yes, I did kind of forget to mention that part, as this is simply a personal project that I'm not making money off of. I didn't know these things were such a thriving business. Oh well, it's not a big priority—I will continue to mangle the DataGrid as best as I can.
Thanks for the prompt reply, by the way.
-Domenic Denicola- [CPUA 0x1337]
“I was born human. But this was an accident of fate—a condition merely of time and place. I believe it's something we have the power to change…”
|
|
|
|
|
Domenic [Geekn] wrote:
I will continue to mangle the DataGrid as best as I can.
Unless you are dependent on using DataSet's and DataTables you can create your own IList implementations and set the grid's DataSource property to that.
This help topic, ms-help://MS.VSCC/MS.MSDNVS/vbcon/html/vbconInterfacesRelatedToDataBinding.htm[^], discusses the basics of data binding (such as is used by the DataGrid).
James
- out of order -
|
|
|
|
|
Basically I have two different controls which both need to raise the same event code. This would be easy if the control types were the same or used the same EventHandler, but in this case one is a CheckBox and the other is the ImageButton .
ImageButton uses the ImageClickEventHandler , not the normal EventHandler .
Currently I have had to make the two events and then they both really just go and run the same method.
But is there a way (a way of using delegates I do not know about?) of having them both go to the same event handler off the bat?
ta
Paul Watson Bluegrass Cape Town, South Africa Colin Davies wrote:
...can you imagine a John Simmons stalker !
|
|
|
|
|
Unfortunately no, unless you redefine the event in an inherited class, but that will be too much work. Best is just to make a common method and call that, and thats what you probably have already
Now here's a tip (maybe it will work for you): Instead of using a ImageButton, just use an LinkButton and add HTML to the Text property for the pic iow <img src="nudiepic.jpg"> . Then use the Click event of that. Now both are using the same event handler and Paul can be happy again.
Hope it works (all theory)
PS: start shouting for zim!
"I dont have a life, I have a program." Also, I won't support any software without the LeppieRules variable.
|
|
|
|
|
leppie wrote:
Now here's a tip (maybe it will work for you): Instead of using a ImageButton, just use an LinkButton and add HTML to the Text property for the pic iow . Then use the Click event of that. Now both are using the same event handler and Paul can be happy again
Lovely, good idea, thanks leppie.
leppie wrote:
S: start shouting for zim!
LOL! I have faith in the bokke... I have faith in the bokke... I have faith in the bokke... I have faith in the bokke... *Paul carries on chanting*
Paul Watson Bluegrass Cape Town, South Africa Colin Davies wrote:
...can you imagine a John Simmons stalker !
|
|
|
|
|
Paul Watson wrote:
*Paul carries on chanting*
You sure you circled the fire the right way around? Didnt work!
"I dont have a life, I have a program." Also, I won't support any software without the LeppieRules variable.
|
|
|
|
|
Hello, the codegurus around the world.;)
How about using WIN32 API - SendMessage function.
As you know, we can import this API by Dllimport.
In fact, I have an idea to fire the event of some control by
firing by the other control.
(However, I didn't check all events yet?)
Or, we can use WinPros function to check all events?
Please, don't send me your email about your programming questions directly.
However, if you believe that you gives me some benefits, you can send me your email.
Have a nice day!
Sonork - 100.10571:vcdeveloper
-Masaaki Onishi-
|
|
|
|
|
I have a problem displaying an array of files in a listbox
my code for the array is:
string[] files = openFileDlg.FileNames;
and I looked up the bestway to add multiple files to a listbox and came up with this:
lstFiles.Items.AddRange(files);
the problem is that my last file when added this way is lost. I also tried setting the datasource to files:
lstFiles.DataSource = files;
but that did not work either. And forced redraw and reinitilization of the list box evertime my OpenFileDialog was called. My problem I think has to do with improper indexing of files... I say this because I cannot select one file and have it display (it comes up blank) but if I try to open it again it is there. So once my files array first becomes initilized it works.
I'm sorry if this question has been asked before but it's late and I have been searching the newsgroups and MSDN and just can't seem to find the answer... Thanks for your help
|
|
|
|
|
Freaky. Just as a matter of course...are you sure you clicked the OK button? It is, after all, late...right? (Not here. It's only 3:30 PM)
But that's wierd. 'Cause I've written the same code before and it's always worked for me.
[edit]Actually, I just did: fileList.Items.AddRange(fileDialog.FileNames); [/edit]
You will now find yourself in a wonderous, magical place, filled with talking gnomes, mythical squirrels, and, almost as an afterthought, your bookmarks
-Shog9 teaching Mel Feik how to bookmark
I don't know whether it's just the light but I swear the database server gives me dirty looks everytime I wander past.
-Chris Maunder
|
|
|
|
|
I figured it out... It was about 12:30 am when I posted my question and I will use the lateness of that as an excuse The answer? I have my listbox contained by a panel... The panel was expanded the entire top of the app (eg. under the title bar) so guess what when I set the docking on the listbox to fill... Yep it cut off the top line of my files... Do I ever feel dumb now
|
|
|
|
|
djkno3 wrote:
Do I ever feel dumb now
Don't. We all suffer from this type of stuff.
BTW, welcome to CP.
You will now find yourself in a wonderous, magical place, filled with talking gnomes, mythical squirrels, and, almost as an afterthought, your bookmarks
-Shog9 teaching Mel Feik how to bookmark
I don't know whether it's just the light but I swear the database server gives me dirty looks everytime I wander past.
-Chris Maunder
|
|
|
|
|
I want to ignore the mouse click event means whenever the event fired it just get ignored (nothing happen). For example I have a TextBox but when I click on it nothing happen, it just ignores the click event. I don't want to use the Enabled property cause it changes its apperance.
Thanks in advance.
|
|
|
|
|
Just don't write a method that fires when it's clicked...
You will now find yourself in a wonderous, magical place, filled with talking gnomes, mythical squirrels, and, almost as an afterthought, your bookmarks
-Shog9 teaching Mel Feik how to bookmark
I don't know whether it's just the light but I swear the database server gives me dirty looks everytime I wander past.
-Chris Maunder
|
|
|
|
|
Usually in a case like this I reate a new class derived fromm the control that I wasnt to modify, then basically override those event methods. Might be the long way to do it....
Mark
|
|
|
|
|
Hi!
I don't know if this really is a good idea. Because you user expects a visual feedback. If you disable the listbox, let it look disabled and don't fool your user.
But if you want to do it, do the following:
1)Derive a class from TextBox
2)Override WndProc. And call the base-class method on all messages except WM_CLICK. This should work.
Cheers
HTH
Martin
"Situation normal - all fu***d up"
Illuminatus!
|
|
|
|
|
I agree what u said and I tried the way you suggest it works great. But there is a problem it can be a expensive call, cause it goes in WndProc all the time cause events are firing all the time. Is there another way, like just detach that attached event. I will be really thankful to you.
|
|
|
|
|
Hi,
This code works on 2000/XP plateform but not on NT4 SP6a
[code]
socket.SetSocketOption(SocketOptionLevel.IP,SocketOptionName.HeaderIncluded,1);
[/code]
Does someone have an idea why ?
Thanks.
|
|
|
|
|
Thanks to those who answered earlier. I have two combo boxes which show the databases and tables in my DB. When I change the table combo, the DG shows the tables contents. The code now looks like this:
m_dsTables.Clear();
dataAdapter.Fill(m_dsTables);
dgTables.Expand(-1);
The call to Clear() stops my grid from having the old data in it, but the old columns are still there - how do I delte them ?
The call to Expand(-1) expands the + button in the datagrid so I see the word 'table', but I still need to click on this word to show the table. I just want the table to be shown and to remain visible, can I do that programatically ?
This datagrid looks cool, but right now I am overwhelmed by the number of methods it has, and it's not covered in the Petzold book
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
As per usual, it's a case of ask and ye shall work it out yourself.
m_dsTables.Clear();
dataAdapter.Fill(m_dsTables, m_sDBName);
dgTables.DataSource = m_dsTables.Tables[m_sDBName].DefaultView;
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
Christian Graus wrote:
As per usual, it's a case of ask and ye shall work it out yourself.
You say this after about 10 minutes?
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
How do you mean ?
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
If there are 2 window applications(if run the exe file, it will pop up a window UI, and input the parameters there). The first one is to do the file format convertion of A to B, and the second application is to do the file format convertion of B to C. Now I want to write a Console application in C# which will call these 2 applications to do the job of converting A to C. Anybody knows how to do it? Thanks!
|
|
|
|
|
How do I pass an array from C# to a COM object.
What is the method parameter syntax for COM object and how does C# use the COM object
|
|
|
|
|
I do something like that:
<br />
public int[] ColumnOrderArray<br />
{<br />
get<br />
{<br />
int iCount = m_ctrl.Columns.Count;<br />
int[] array = new int[ iCount ];<br />
<br />
IntPtr ar = Marshal.AllocHGlobal( iCount * Marshal.SizeOf( typeof(int) ) );<br />
Marshal.Copy( array, 0, ar, iCount );<br />
<br />
WindowsAPI.SendMessage( m_ctrl.Handle, LVM_GETCOLUMNORDERARRAY, iCount, ar );<br />
Marshal.Copy( ar, array, 0, iCount );<br />
Marshal.FreeHGlobal( ar );<br />
return array;<br />
}<br />
set<br />
{<br />
int iCount = m_ctrl.Columns.Count;<br />
if( value.Length > iCount || value.Length < iCount ) return;<br />
<br />
IntPtr ar = Marshal.AllocHGlobal( iCount * Marshal.SizeOf( typeof(int) ) );<br />
Marshal.Copy( value, 0, ar, iCount );<br />
<br />
WindowsAPI.SendMessage( m_ctrl.Handle, LVM_SETCOLUMNORDERARRAY, iCount, ar );<br />
Marshal.FreeHGlobal( ar );<br />
}<br />
}<br />
For better solution look into MSDN by search criteria: Array NEAR COM NEAR Marshal
Alex Kucherenko
|
|
|
|
|